AngularJS mdDialog отменить действие по удалению - PullRequest
0 голосов
/ 25 августа 2018

Мы используем сервис mdDalog для вызова модальной формы, позволяющей пользователю просматривать и редактировать данные. У нас есть кнопка закрытия, где мы проверяем данные, которые были сохранены, и, если нет, даем пользователю возможность отменить изменения или вернуться к редактированию. Если они отменяют изменения, мы просто вызываем close () для $ mdDialog. Теперь мы хотим, чтобы клавиша 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!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...