I'm creating a mailbox in angular. And I would need to save the draft message when the popup to send a message closes.
I know there are some alternatives:
scope.$on("$destroy", function () { saveMessage() });
and:
$mdDialog.show(...).finaly(function(){ saveMessage() });
But both are insufficient:
- The first is called when the Dialog is already closed. This is due to the requirements unacceptable (there is an iFrame that needs to be open)
- The second is outside the scope of the controller of the mdDialog, and gives the responsibility to the caller of the pop-up, while it should be in the pop-up itself.
So I'm looking for way to call a function BEFORE the pop-up actually closes.
Something like scope.$on("$mdDialogBeforeClose", function () { saveMessage() });
Another option would be to hook every close event. Seems ugly, but might be the solution. In that case I would need to listen to the escape-button and clicking outside the pop-up (Altough I might disable that function)...
Any better ideas?
Thx!
EDIT:
An addition question: How to catch the escape-keypress event? I tried <md-dialog aria-label="List dialog" ng-keypress="keyPress($event)">
but it's not even triggered...