我使用角度創建郵箱。當發送消息的彈出窗口關閉時,我需要保存草稿消息。mdDialog:捕獲onClose事件
我知道有一些替代方案:
scope.$on("$destroy", function() { saveMessage() });
和:
$mdDialog.show(...).finaly(function(){ saveMessage() });
但這兩者都不足以:
- 首當對話框已關閉時調用。這是由於要求不可接受的(有一個需要打開的iFrame)
- 第二個超出了mdDialog控制器的範圍,並將責任賦予彈出窗口的調用者,而它應該在彈出窗口本身。
所以我正在尋找方式來調用一個函數之前彈出實際上關閉。 類似於scope.$on("$mdDialogBeforeClose", function() { saveMessage() });
另一種選擇是鉤住每一個關閉事件。看起來很醜,但可能是解決方案。在這種情況下,我需要聽取逃生按鈕並在彈出窗口外單擊(Altough,我可能會禁用該功能)...
有沒有更好的想法?
Thx!
編輯:
的另外一個問題:如何捕捉逃逸,按鍵事件?我試圖<md-dialog aria-label="List dialog" ng-keypress="keyPress($event)">
,但它甚至沒有觸發...
這有同樣的問題,因爲我所描述的第二種情況的承諾。我需要在模態的控制器中。我需要訪問該範圍,並且我希望模態本身負責在每次關閉時保存消息(我們是一個開發團隊,並且有多個地方可以打開對話框) –
@ThomasStubbe演示顯示如何使用對話框控制器中的功能關閉對話框。你是指通過點擊外部關閉對話框? –
該演示完全不使用對話框控制器:'控制器:SomeDialogController'應該被添加到show-function中。在該控制器內部有一個需要在關閉前執行的功能。 –