gpt4 book ai didi

angularjs - mdDialog:捕获 onClose 事件

转载 作者:行者123 更新时间:2023-12-02 12:38:10 26 4
gpt4 key购买 nike

我正在以 Angular 创建一个邮箱。当发送消息的弹出窗口关闭时,我需要保存草稿消息。

我知道还有一些替代方案:

scope.$on("$destroy", function () { saveMessage() });

和:

$mdDialog.show(...).finaly(function(){ saveMessage() });

但是两者都不够:

  • 第一个在对话框已经关闭时调用。这是由于要求 Not Acceptable (有一个iFrame需要打开)
  • 第二个在 mdDialog Controller 的范围之外,并将责任交给弹出窗口的调用者,而它应该在弹出窗口本身中。

所以我正在寻找在弹出窗口实际关闭之前调用函数的方法。类似 scope.$on("$mdDialogBeforeClose", function () { saveMessage() });

另一种选择是 Hook 每个关闭事件。看起来很丑,但可能是解决方案。在这种情况下,我需要监听退出按钮并在弹出窗口之外单击(尽管我可能会禁用该功能)...

还有更好的想法吗?

谢谢!

编辑:

附加问题:如何捕获escape-keypress事件?我试过<md-dialog aria-label="List dialog" ng-keypress="keyPress($event)">但它甚至没有被触发...

最佳答案

也许使用onRemoving回调 - CodePen

来自文档:

enter image description here

标记

<div ng-controller="MyController as vm" id="popupContainer" ng-cloak="" ng-app="app">
<md-button class="md-primary md-raised" ng-click="vm.open($event)">
Custom Dialog
</md-button>

<script type="text/ng-template" id="test.html">
<md-dialog aria-label="Test">
Hello!
</md-dialog>
</script>
</div>

JS

angular.module('app',['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])

.controller('MyController', function($scope, $mdDialog) {
this.open = function(ev) {
$mdDialog.show(
{
templateUrl: "test.html",
clickOutsideToClose: true,
onRemoving: function (event, removePromise) {
console.log(123);
}
});
};
})

关于angularjs - mdDialog:捕获 onClose 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39765731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com