Обновить привязки из $ mdDialog - PullRequest
0 голосов
/ 07 мая 2018

Я использую 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();
            });
    }

1 Ответ

0 голосов
/ 08 мая 2018

Итак, после двухдневного удара головой об стол, мой друг предложил превратить переменную области видимости в объект массива, и это сработало. Так объявлено

$scope.a = {warningToggle:0};

Он сказал, что это, вероятно, из-за наследования прототипа. Я новичок в Angular и Javascript в целом, поэтому мне нужно прочитать об этом, прежде чем я пойму, почему это работает, но, надеюсь, это может помочь кому-то еще.

...