我有一个$mdDialog
窗口,只需单击一下即可弹出,然后根据用户的选择打开另一个窗口,其中包含一个选择列表,以便用户可以选择特定月份。年。我需要从第二个窗口捕获这个月的选择,并在AJAX请求中进一步使用它。问题是我只找到了一些解决方案,说明你需要在$mdDialog.show()
内设置承诺,然后在$mdDialog.hide()
中解决它。
问题是我在嵌套控制器中有$ mdDialog.hide(),所以我觉得我想把马车放在马的前面。
这是我的控制器的一部分,您可以在其中看到具有.hide()
操作的嵌套控制器。当然它会返回' undefined'现在...
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);
})
}