Выберите элемент в угловом без обновления modelValue при втором выборе
У меня есть элемент select, связанный с моделью в угловом представлении. При заполнении формы с помощью клавиатуры, я заметил, что если вы переместите стрелку вниз ко второму варианту значения, модель все равно будет представлять первое значение. Это происходит только при использовании клавиатуры для заполнения формы.
Настройка довольно проста, с использованием угловых 1.4.3:
var app = angular.module('app', []);
app.controller('myController', function() {
var vm = this;
vm.options = [{
Id: 1,
Value: 'A'
}, {
Id: 2,
Value: 'B'
}, {
Id: 3,
Value: 'C'
}]
});
<script src="https://code.angularjs.org/1.4.3/angular.js"></script>
<body ng-app="app">
<div ng-controller="myController as ctrl">
<p>
Model is not updated on second down button push. Repro:
, <ol>
<li>Tab to select element</li>
<li>Hit down and notice the optionId updated to 1</li>
<li>Hit down again and notice that the displayed value changes to B, but optionId stays as 1</li>
<li>Hit down again and notice that the displayed value changes to C, and optionId changes to 3</li>
<li>Hit up and notice that displayed value changes to B, and optionId changes to 2</li>
</ol>
Why doesn't the optionId = 2 on the initial selection of B
</p>
<select id="mySelect" ng-options="item.Id as item.Value for item in ctrl.options" ng-model="ctrl.optionId" style="width:200px">
</select>
<div><strong>optionId: {{ctrl.optionId}}</strong>
</div>
</div>
</body>
Почему не обновляется модель при нажатии второй стрелки вниз?
Обновить Вот плункер, который демонстрирует поведение,http://plnkr.co/edit/Hiu67NTR3Gpk9jByZtQD?p=info
2-е обновление Вотмодифицированный поршень который реализует обходной путь, предложенный Мэттом. Этот обходной путь вызывает желаемое поведение в Chrome, Firefox и Internet Explorer