AngularJS mdDialog取消onRemoving操作

时间:2018-08-24 23:55:55

标签: angularjs

我们正在使用mdDalog服务弹出一个模态表单,允许用户查看和编辑数据。我们有一个关闭按钮,用于验证数据是否已保存;如果没有,则为用户提供放弃更改或返回编辑的选项。如果他们放弃更改,我们只需在$ mdDialog上调用close()即可。现在,我们要允许ESC键和/或在模式外部单击以关闭模式。我们可以调用验证代码,但是onRemoving中似乎没有办法取消该操作。代码如下

$mdDialog.show({
    template: activityTemplate,
    escapeToClose: true,
    clickOutsideToClose: true,
    fullscreen: false,
    controller: 'activityController',
    controllerAs: '$ctrl',
    onRemoving: function(element, removePromise) {
        // call validation function on parent controller
        // cancel close if data is not valid
        console.log(element);
        console.log(removePromise);

        $mdDialog.cancel();
        },
        locals: {
        activity: activity.data,
        comments: comments.data
    }
}).then((goTo) => {
    if (goTo) {
        $state.go(goTo.route, goTo.params);
    } else {
        $state.go('^');
    }
    return goTo;
}, () => {}).finally(() => {});

是否还有其他事件可以挂钩,或者是否有其他未记录的方式有条件地取消关闭事件?我总是可以将escapeToClose和clickOutsideToClose设置为false,并在显示对话框时侦听按键和单击事件,但是我希望有更好的方法。

谢谢。

期待着迁移到新的Angular!

0 个答案:

没有答案