Angularjs нг-изменение между 1,3x против 1,6x - PullRequest
0 голосов
/ 08 июня 2018

Я обновляю приложение с Angularjs 1.3.x до 1.6.x.На элементе есть ng-изменение, связанное с вызовом функции.В этом элементе также есть атрибут data-element-id, который использует угловое выражение.

<select id="carWashModel" class="form-control w200 " ng-show="currentLocation.CarWashModel.Editable == true" ng-model="currentLocation.CarWashModel.Answer" ng-change="triggerSelectElementUpdate('carWashModel', 'CarWashModel', 'cai')" data-element-id="{{currentLocation.CarWashModel.Id}}" data-element-name="CarWashModel" data-element-description="{{currentLocation.CarWashModel.Question}}">
      <option ng-repeat="opt in currentLocation.CarWashModel.Options" ng-selected="opt==currentLocation.CarWashModel.Answer" value="{{opt}}" label="{{opt}}">{{opt}}</option>
</select>

Я заметил, что в 1.3.x программные изменения в ng-модели не вызывают эту функцию ng-changeно в 1.6.х теперь так и есть.Это вызывает проблему с приложением, потому что внутри этой функции изменения этот программист использует jquery для получения этого идентификатора элемента данных, который еще не заполнен угловым, кажется, что он возвращается с NaN, что вызывает проблемы в нисходящем направлении.

Какие бы у меня были варианты решения этой проблемы?Простым ответом было бы то, что я не хочу, чтобы ng-change вызывался программно изменением ng-модели, чтобы получить то же самое старое поведение, но я не уверен, возможно ли это.Возможно, есть способ узнать, вызван ли он из-за смены пользователя или программы?

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете изменить ng-change на ng-blur, что вызовет функцию, когда выбранный вход потерял фокус.В этом случае это произойдет только с точки зрения, но поведение будет немного другим.

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