angular-ui $modal
支持使用modalInstance.result.then(closeFn,dismissFn)
关闭或解除窗口的承诺。
因此,如果我使用模态收集新项目的信息,那么我可以这样做:
modalInstance.result.then(function (item) {
new Item(item).$save(); // or similar
}, function () {
});
和html片段:
<button class="btn btn-primary" ng-click="$close(item)">Save</button>
<button class="btn btn-warning" ng-click="$dismiss()">Cancel</button>
但新项目可能存在冲突,或者在服务器端可能无效,或许多其他事情。在模态本身关闭之前,有什么方法可以捕捉到吗?我想抓住“是”(或“关闭”)点击,运行我的new Item(item).$save()
fn,然后:
我知道我可以在按钮上使用不同的ng-click
,并在$modal
控制器中捕获它,如下所示:
<button class="btn btn-primary" ng-click="save(item)">Save</button>
代码:
var modalInstance = $modal.open({
templateUrl: '/partials/createItem.html',
controller: function ($scope) {
$scope.save = function(item) {
new Item(item).$save().then(function(){
modalInstance.close();
});
};
}
});
但是,还有更多标准方法可以预先捕捉近似事件吗?
答案 0 :(得分:1)
angular-ui&#39; s $close
实际上是标准的角度延迟对象。你无法捕捉正在进行的$ close事件,所以实际上你的第二个决定是正确的。使用提交按钮的重新保护