2014-02-12 124 views
11

我正在使用可通过“取消”按钮或通过ESC关闭的Angular UI Bootstrap模式。由于我必须在关闭时进行一些清理,所以我在范围中写了'取消'方法,但只有在单击此取消按钮时才会调用此方法,但在ESC上关闭时如何调用此清洁功能?在角度用户界面上调用回调函数Bootstrap的模式

回答

22

当某个模式被解除时(通过按ESC或点击背景)从$modal.open方法调用返回的承诺为被拒绝。因此,您可以通过在返回的承诺中添加错误处理程序来响应ESC按下。这在图示的例子中可以从演示页:http://plnkr.co/edit/xMTr78WJQbKyHsA53gyv?p=preview (见本线:$log.info('Modal dismissed at: ' + new Date());

+0

可以在调用范围内的信息被调用时被访问? –

+0

真的很整洁的实现,谢谢百万 – JSancho

8

感谢@ pkozlowski.opensource

我直接知道该怎么做:)

var modalWindow = $modal.open({ 
    windowClass: 'modal myKewlDialog', 
    templateUrl: 'views/modals/myKewlModalTemplate.html', 
    controller: 'myKewlModalController' 
}); 

modalWindow.result.then(function (result) { 
    updateUI(); 
}, function (result) { 
    updateUI(); 
}); 
+1

如果U触发相同的函数来关闭和解除模式,我会建议使用['finally'](function(){....})而不是重复的触发器) – Ghashange

+0

好点!我不知道我是否真的在这两种情况下调用updateUI-fn ... – Guntram