Я использую md-переключатель, который связан с переменной области видимости $ scope.warningToggle. Когда я нажимаю на переключатель, появляется диалоговое окно подтверждения, чтобы попросить пользователя подтвердить, действительно ли он хочет переключить переключатель. Если пользователь нажимает «Отмена» или происходит сбой обновления, я хочу, чтобы коммутатор вернулся к своей прежней позиции, но не могу получить привязку к обновлению. Функция showToggleConfirmation вызывается на коммутаторе с помощью ng-change. Переменная warningToggle будет 0 для выключения и 1 для включения. Функция revertToggle просто принимает предупреждениеToggle и переключает номер. Так что, если это 1, он меняет его на 0 и наоборот. Я пробовал несколько вариантов из следующего:
$scope.showToggleConfirmation = function(event, customer, warningToggle) {
var messageText = toggleMessage(warningToggle);
var confirm = $mdDialog.confirm({
title: 'Confirm',
textContent: messageText,
ok: 'Confirm',
cancel: 'Cancel',
scope: $scope,
preserveScope: true,
parent: angular.element(document.body),
targetEvent: event,
});
$mdDialog.show(confirm).then(
function(answer) {
// Code when response is confirmed
},
function() {
revertToggle();
});
}