Ввод с Datalist - ng-change не запускается в IE для AngularJS - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть тег ввода со списком данных, для которого изменение ng не срабатывает при выделении в Internet Explorer 11. Оно срабатывает только при размытии ввода. Работает в Chrome.

Codepen ниже: https://codepen.io/vijayvmenon/pen/gzLYgp

<input list="testList" name="origin node" ng-model="SelectedDoctor" 
       ng-change="LoadSessionData(SelectedDoctor)" 
       autocomplete="off" required /> 
<datalist id="testList" > 
   <option value={{value.id}} ng-repeat="value in data"> 
</datalist>
  <p>{{selectedVal}}</p>

Если вы проверите код, вы увидите, что в chrome значение списка данных показано ниже при выборе. В IE значение отображается только при нажатии клавиши табуляции или при щелчке вне тега.

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

Примечание. Если вы измените версию AngularJS на 1.2.x, она будет работать нормально. Все, что выше, не работает. Это упрощенная версия для более крупного приложения, и я запускаю бэкэнд-сервис при выборе из списка данных.

1 Ответ

0 голосов
/ 27 апреля 2018

Для достижения ожидаемого результата используйте нижеприведенную опцию события oninput для поля ввода

<input list="testList" name="origin node" ng-model="SelectedDoctor" oninput = "angular.element(document.getElementById('check')).scope().LoadSessionData(this)" autocompletestListte="off" required /> 
<datalist id="testList" > 

ng-change не запускается из-за списка данных, для которого ng-click или ng-change не работает

После присвоения значения переменной области - selectedVal, запустите $ scope. $ Apply (), чтобы увидеть выбранный параметр в пользовательском интерфейсе

пример кода - https://codepen.io/nagasai/pen/jxVOrp

...