Как я могу предотвратить изменение ng-модели в select на основе результата функции? - PullRequest
0 голосов
/ 17 октября 2018

У меня есть выпадающее меню выбора, заполненное параметрами ng.Я хочу создать всплывающее окно, которое потребует от пользователя подтверждения, что он хочет изменить выбранную опцию, прежде чем продолжить.

До сих пор я пытался использовать ng-change, но это не работает, потому чтоВы не можете предотвратить изменение (для целей моего приложения я не могу просто вернуть значение, которое было до изменения в функции ng-change).Я попробовал ng-click, но это срабатывает, когда пользователь нажимает на поле выбора, тогда как я хочу, чтобы оно срабатывало, когда пользователь фактически выбирает один из параметров из поля выбора для целей пользовательского интерфейса.Я исследовал ng-model-options, но моя проблема в том, что я не могу получить событие, которое запускается при выборе опции.

Код ниже демонстрирует, как выглядит этот выбор:

<select ng-model='uiConfig.selectedInteractionType' ng-options='interactionType for interactionType in uiConfig.interactionTypes'></select>

1 Ответ

0 голосов
/ 18 октября 2018

У меня было точно такое же требование, хотя и для другого элемента.У меня была кнопка, которая была действительно тегом привязки, где я передавал некоторые значения, включая URL, когда пользователь нажимал кнопку.Затем мне нужно было открыть модальное $ mddialog и позволить пользователю отменить или нажать продолжить, чтобы отправить их на перенаправленный сайт.

Здесь вам нужна директива.Поместите значения в $ scope.Я использовал для этого атрибуты:

restrict: 'A',

, а затем в своей функции связи я использовал attributes.$observe

, чтобы получить свои значения.Затем используйте в своей директиве что-то вроде этого:

element.on('click' function ($event) {
   $event.preventDefault(); //To stop the event flow.
   $mdDialog.show({
   templateUrl: "path to your modal html document",
   controller: myController,
   clickOutsideToClose: true,
   locals:{
       href: $scope.href,
       myValue: $scope.myValue
   }

Использование $ locals позволяет передавать значения в директиву.

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