2015-05-20 16 views
6

Sto utilizzando il modello angolare JS ng per tracciare il valore selezionato del tag select.Modello JS angolare non inizializzato correttamente per la prima volta

Ecco l'esempio 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"}; 

} 

Se, vado in un menu a discesa utilizzando un tasto di tabulazione e cercare di premere il tasto "I" due volte per selezionare la seconda opzione che iniziano per I, gli aggiornamenti del valore di discesa come previsto , il modello ng prende solo il valore della prima opzione con "I". Un bug in angular js o sto facendo qualcosa di sbagliato qui?

+0

Usa '$ portata .chosenO = $ scope.optionsArray [0]; 'per la prima selezione predefinita – vamsikrishnamannem

+0

Il mio obiettivo non è quello di ottenere la prima selezione, voglio ottenere i valori di quello che appare sul frontend. Succede se usiamo manualmente aprire anche il menu a discesa. – stp

risposta

2

Date un'occhiata al seguente jsfiddle

La differenza principale con il codice è il modo in cui la discesa è costruito.

Invece di alimentare con un singolo oggetto

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

è necessario cambiare i dati in qualcosa di diverso, per esempio, una serie di oggetti, come questo:

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

questa cosa funziona, ma come mai quello che ho fatto non funziona? Ora devo cambiare molta implementazione ..: | – stp

Problemi correlati