Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在模式关闭后捕获角度引导UI$uibModal closed事件_Javascript_Angularjs_Modal Dialog_Angular Ui Bootstrap_Angular Ui Modal - Fatal编程技术网

Javascript 在模式关闭后捕获角度引导UI$uibModal closed事件

Javascript 在模式关闭后捕获角度引导UI$uibModal closed事件,javascript,angularjs,modal-dialog,angular-ui-bootstrap,angular-ui-modal,Javascript,Angularjs,Modal Dialog,Angular Ui Bootstrap,Angular Ui Modal,我正在从另一个控制器使用$uibModal.open打开一个模式窗口,并且需要在模式窗口完全关闭时得到通知(而不是在关闭期间…),以便我能够运行一个函数 打开模式的代码如下所示: var modalInstance = $uibModal.open({ templateUrl: "myModalContent.html", controller: "termModalCtrl", windowClass: 'app-modal-window', resolve: { 'p

我正在从另一个控制器使用$uibModal.open打开一个模式窗口,并且需要在模式窗口完全关闭时得到通知(而不是在关闭期间…),以便我能够运行一个函数

打开模式的代码如下所示:

var modalInstance = $uibModal.open({
  templateUrl: "myModalContent.html",
  controller: "termModalCtrl",
  windowClass: 'app-modal-window',
  resolve: {
    'params': function () { return id }
  }
});
我看到了一些建议使用的解决方案:

modalInstance.result.then(function(result) {
});
问题是函数回调在模态窗口实际关闭之前调用(当模态窗口仍然打开时),这不是我想要的行为,因为这意味着它捕获的是模态窗口的“关闭”事件,而不是“关闭”事件

有没有一种简洁的方法来实现这一点?如果不是的话,我会感到惊讶,因为这种行为在这个星球上的任何UI框架中都很常见

请帮忙

试试这个

.open
方法返回可以与
.closed
链接的承诺,这是
.open
方法的许多属性之一

我测试了它,它只在模式关闭后显示警报,而不是在“关闭”时显示警报

请参阅返回部分下的“关闭”


这是plunker

使用
modalInstance.result
promise第二次回调来捕获关闭事件。 我还在
上得到异常“无法获取属性”,然后是“未定义或空引用”。已关闭。然后是

 var modalInstance = $uibModal.open({
    templateUrl: "myModalContent.html",
    controller: "termModalCtrl",
    windowClass: 'app-modal-window',
    resolve: {
        'params': function () { return id }
    }
});

modalInstance.result
   .then(function (selectedItem) {
    //
   }, function () {
    //close callback
    console.info('modal closed');
   });

我尝试了您的解决方案,但它不起作用-我遇到了一个异常“无法获取未定义或空引用的属性'then'。对于open方法返回的承诺,属性“closed”似乎没有定义……不。删除modalInstance.result。然后。。。要使其工作,我们必须使用$uibModalInstance.close('cancel')关闭弹出窗口;但不使用disclose函数。
 var modalInstance = $uibModal.open({
    templateUrl: "myModalContent.html",
    controller: "termModalCtrl",
    windowClass: 'app-modal-window',
    resolve: {
        'params': function () { return id }
    }
});

modalInstance.result
   .then(function (selectedItem) {
    //
   }, function () {
    //close callback
    console.info('modal closed');
   });