2015-05-20 12 views
6

Używam Angular JS ng-model do śledzenia wybranej wartości tagu select.Angular JS ng-model nie uruchamia się poprawnie po raz pierwszy

oto przykład http://jsfiddle.net/8853oxb1/3/

function ControllerA($scope) { 
    $scope.optionsArray = [1,2,3,4,5]; 
    $scope.optionsObject = {"India" : "IN" , "Singapore" : "SG", "Malaysia" : "MY", "Indonesia" : "INDY"}; 

} 

Jeżeli idę do rozwijanego menu za pomocą klawisza Tab i próbować wcisnąć przycisk „I” dwa razy, aby wybrać drugą opcję, począwszy od I, aktualizacje wartości rozwijana zgodnie z oczekiwaniami , bu the ng-model po prostu bierze wartość pierwszej opcji z "I". Błąd w kanciastym js lub czy robię coś złego tutaj?

+0

Wykorzystanie '$ zakres .chosenO = $ scope.optionsArray [0]; 'dla domyślnego pierwszego wyboru – vamsikrishnamannem

+0

Moim celem nie jest uzyskanie pierwszego wyboru, chcę uzyskać wartości tego, który pojawia się na frontend. Zdarza się, gdy używamy również ręcznie otwórz listę rozwijaną. – stp

Odpowiedz

2

Wystarczy popatrzeć na następujący jsfiddle

Główną różnicą w kodzie jest sposób rozwijana jest zbudowany.

Zamiast karmienie go z jednego obiektu

$scope.optionsObject = {"India" : "IN" , "Singapore" : "SG", "Malaysia" : "MY", "Indonesia" : "INDY"}; 

trzeba zmienić swoje dane w coś innego, na przykład, tablicę obiektów, takich jak to:

$scope.optionsObject = [ { name: "India", code: "IN" }, { name: "Singapore", code: "SG" }, { name: "Malaysia", code: "MY" }, { name: "Indonesia", code: "INDY" } ]; 
+0

to działa, ale dlaczego ten, który zrobiłem, nie działa? Teraz muszę zmienić wiele implementacji ..: | – stp

Powiązane problemy