2017-04-12 12 views
0

Dialog Window(これはown controllerです)を開きます。 Dialog Windowに属し、onRemovingに属するdifferentControllerのデータを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' }); 
    }; 
} 
関連する問題