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

时间:2015-03-28 11:37:40

标签: javascript angularjs twitter-bootstrap promise angular-promise

我正在使用angular-ui-bootstrap桥库处理角度和bootstap。我想要实现的是重用modal component并将其包装在一个承诺中,该承诺将在模式成功关闭(按OK按钮时)或拒绝(cancel按钮时解析在模态之外按下或点击。)

据我所知,有来自桥库的$modal服务,它只有一种方法可用:open(options)。还有内置angular promise implementation$q。我正在寻找一种如何将两者结合起来的方法。

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

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

1 个答案:

答案 0 :(得分: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());
});

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