angular ui bootstrap:当模式关闭时,promise被解析/拒绝

angular ui bootstrap: promise resolved/rejected when modal closed

本文关键字:promise 拒绝 bootstrap ui 模式 angular      更新时间:2023-09-26

我正在使用angular ui引导桥库开发angular和bootstap。我想实现的是重用模态组件,并将其封装在一个承诺中,当模态成功关闭(按下OK按钮时)或被拒绝(按下或单击模态之外的cancel按钮时),该承诺将得到解决。

据我所见,有一个来自网桥库的$modal服务,它只有一个可用的方法:open(options)。还有内置的angular promise实现:$q。我正在想办法把两者结合起来。

我想要一个自定义组件(服务、工厂?),它将提供一个返回promise的startFlow方法。调用startFlow也将打开引导模式。当模态关闭(积极或消极)时,承诺可能会被解决或拒绝。

有人能提示一下如何实现吗?到目前为止,我还没找到一个现有的解决方案。。。

open返回的对象的result属性是一个承诺,其行为与您描述的完全一样。事实上,文档中的示例位于https://angular-ui.github.io/bootstrap/#/modal使用它:

var modalInstance = $modal.open({
  templateUrl: 'myModalContent.html',
  controller: 'ModalInstanceCtrl',
  size: size,
  resolve: {
    items: function () {
      return $scope.items;
    }
  }
});
modalInstance.result.then(function (selectedItem) {
  $scope.selected = selectedItem;
}, function () {
  $log.info('Modal dismissed at: ' + new Date());
});

可以看到它在这个Plunker中工作http://plnkr.co/edit/ro5Dnkg0p9wYWlMCRqlN?p=preview