1

$mdDialogワンクリックでポップアップするウィンドウがあり、ユーザーの選択に基づいて、ユーザーが特定の月を選択できるように、選択リストを含む別のウィンドウが開きます。2 番目のウィンドウから今月の選択をキャプチャし、AJAX 要求でさらに使用する必要があります。$mdDialog.show()問題は、内で約束を設定し、それを解決する必要があるという解決策しか見つけられなかったことです$mdDialog.hide()

問題は、ネストされたコントローラーに $mdDialog.hide() があるため、ここで馬の前に馬車を置こうとしているような気がします。これは私のコントローラの一部で、ネストされたコントローラと.hide()アクションを確認できます。もちろん、今は「未定義」を返します...

angular
    .module('demoApp')
    .controller('AppController', ['$scope', '$mdDialog', function($scope, $mdDialog){
    $scope.showConfirm = function(event) {
    $mdDialog.show({
        targetEvent: event,
        templateUrl: 'templates/mainDialogTemplate.html',
        controller: function($scope, $mdDialog, employee){
           $scope.employee = employee;
           $scope.closeDialog = function(){$mdDialog.hide();}
           $scope.pickDate = function(){$mdDialog.show({
                    templateUrl: 'templates/calendarDialogTemplate.html',
                    parent: angular.element(document.body),
                    //clickOutsideToClose: true,
                    controller: function($scope, $mdDialog) {
                        $scope.cancel = function(){$mdDialog.cancel();}
                        $scope.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
                        $scope.closeDialog = function(){$mdDialog.hide(answer)};
                    }
           }).then(function(answer){
                  console.log(answer);
           })
        }
4

0 に答える 0