2017-04-12 42 views
0

我打开一个Dialog Window(它有own controller)。 我想要更改differentController中属于Dialog WindowonRemoving的数据,并将数据发送回parent controller并应用数据。可能吗?

function openTaskDialog(ev, test) 
{ 
    $mdDialog.show({ 
     controller   : 'differentController', 
     controllerAs  : 'vm', 
     templateUrl  : 'dialog.html', 
     parent    : angular.element($document.body), 
     targetEvent  : ev, 
     clickOutsideToClose: true, 
     onComplete: onComplete, 
     onRemoving: function (event, promise) { 
      console.log('onRemoving',event, promise, $mdDialog) 
     }, 
     locals    : { 
      Test : test, 
      event: ev 

     } 
    }) 
    .finally(function(){ 
    }) 
} 

function onComplete (scope, el, options) { 
    console.log('scope, el, options', scope, el, options) 
} 

回答

1
当你调用该对话框的控制器上的 $mdDialog.hide([response]);功能

,这[response]作为一个参数由$mdDialog.show()函数返回的承诺传递。

如果您致电$mdDialog.hide([response]);承诺将得到解决,如果您致电$mdDialog.cancel([response]);承诺将被拒绝。

function openTaskDialog(ev, test) 
{ 
    $mdDialog.show({ 
     controller   : 'differentController', 
     controllerAs  : 'vm', 
     templateUrl  : 'dialog.html', 
     parent    : angular.element($document.body), 
     targetEvent  : ev, 
     clickOutsideToClose: true, 
     onComplete: onComplete, 
     onRemoving: function (event, promise) { 
      console.log('onRemoving',event, promise, $mdDialog) 
     }, 
     locals    : { 
      Test : test, 
      event: ev 

     } 
    }).then(function(response){ 

    }) 
    .catch(function(responseIfRejected){ 

    }) 
    .finally(function(){ 
    }) 

} 

function onComplete (scope, el, options) { 
    console.log('scope, el, options', scope, el, options) 
} 

function differentController($mdDialog){ 
    this.save = function(){ 
     $mdDialog.hide({ message: 'success' }); 
    }; 
    this.cancel = function(){ 
     $mdDialog.cancel({ message: 'fail' }); 
    }; 
} 
相关问题