Я пытаюсь разобраться с различным поведением ngModel
в разных браузерах.
Моя директива обертывает jqueryUI autocomplete и в событии select
она вызывает ngModel.$setViewValue(selectedItem.id)
. Autocomplete позволяет пользователю выбирать элемент с помощью мыши или нажатием enter
на клавиатуре.
Если предложенный пункт:
{
"name": "Apple",
"id": "1000"
}
Я ожидаю, что после его выбора значением ngModel будет выбран элемент id
- 1000
.
-
В Chrome он работает нормально - он правильно устанавливает
$viewValue
и$modelValue
($modelValue=1000
). -
В Firefox он устанавливает модель как в Chrome (
$modelValue=1000
), но когда я нажимаю где-то еще - размываю (тогда браузер, вероятно, запускает событиеchange
), модель изменяется и становится такой же, как видимое входное значение ($modelValue='Apple'
). -
В IE 11 он устанавливает правильную модель только тогда, когда я выбираю элемент с щелчком мыши. Если я выберу его, нажав
enter
, модель станет видимым входным значением ($modelValue='Apple'
)
Вот plunkr: http://plnkr.co/edit/o2Jkgprf8EakGqnpu22Y?p=preview
Я хотел бы достичь такого же поведения в каждом браузере. Как бороться с этими проблемами?