1

我有$mdDialog一个单击弹出的窗口,然后根据用户的选择,另一个窗口打开,其中包含一个选择列表,以便用户可以选择一年中的特定月份。我需要从第二个窗口中捕获本月选择,并在 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