angular ui bootstrap:当模态关闭时,promise已解决/拒绝

duc*_*cin 4 javascript promise twitter-bootstrap angularjs angular-promise

我正在使用angular-ui-bootstrap桥库进行角度和bootstap.我想要实现的是重用模态组件并将其包装在一个promise中,当模态成功关闭(按下OK按钮时)或拒绝模式(cancel按下按钮或在模态外按下按钮)时,它将被解析.

据我所知,有$modal来自桥库的服务,它只有一种方法:open(options).还有内置的角度承诺实现:$q.我正在寻找一种如何将两者结合起来的方法.

我想要一个自定义组件(服务,工厂?),它将提供一个startFlow返回promise的方法.调用startFlow也会打开bootstrap模式.当模态被关闭(正面或负面)时,承诺将被解决或拒绝.

有人可以暗示如何实现吗?到目前为止,我还没有找到现有的解决方案......

Mic*_*mza 12

result由返回的对象的财产open是因为你描述的行为完全的承诺.事实上,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());
});
Run Code Online (Sandbox Code Playgroud)

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

  • 好答案.谷歌/角度可以通过命名属性`.promise`而不是`.result`来让每个人的生活更轻松,这是不可思议的. (8认同)