Mam wybrany element związany z modelem w widoku kątowym. Podczas wypełniania formularza za pomocą klawiatury zauważyłem, że jeśli w dół strzałka do drugiej opcji wartość, model nadal reprezentuje pierwszą wartość. Dzieje się tak tylko wtedy, gdy za pomocą klawiatury wypełniasz formularz.Wybierz element w kanciastym niezawierającym modelu modelValue przy drugiej selekcji
Konfiguracja jest bardzo prosta, przy użyciu kątowej 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>
Dlaczego nie zmiana modelu na drugi dół strzałki prasy?
Aktualizacja Oto plunker który wykazuje zachowanie, http://plnkr.co/edit/Hiu67NTR3Gpk9jByZtQD?p=info
2-te Aktualizacja Oto modified plunker która implementuje obejście Matt proponowane. To obejście powoduje pożądane zachowanie w Chrome, Firefoksie i Internet Explorerze
Do góry. Dziwne. Mam nadzieję, że rozwiążesz ten problem i jestem ciekawa, co się dzieje. Podejrzewając, że to błąd – scniro
Bardzo dziwne. Otworzyłem problem https://github.com/angular/angular.js/issues/12562 –
Z jakiej przeglądarki korzystasz? Widzę problem w Chrome, ale w IE11 (na Win7) wszystko wydaje się w porządku. Zastanawiam się, czy jest to bardziej dropdown problem w przeglądarce –