2014-02-12 50 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