Comment définir la valeur de l'option à l'aide de ng:Options
Apparemment AngularJS ne peut pas construire une liste de <option>
éléments comme un simple modèle dans IE, il fournit à l' ng:Options
directive (voir https://github.com/angular/angular.js/issues/235).
D'après la source, j'ai été en mesure de créer les options avec les étiquettes, comme suit (JSFiddle):
<!-- what I'd like to do -->
<select>
<option ng:repeat='key in keys' value='{{key}}'> {{lookup[key].firstName}} {{lookup[key].lastName}} </option>
</select>
<br/>
<br/>
<!-- what Angular lets me do -->
<select ng-model='key' ng:options='k as lookup[k].firstName + " " + lookup[k].lastName for k in keys'></select>
Cependant, lorsque je passe en revue les options avec Firebug, je vois que la valeur est un indice numérique, pas de mon choix de la valeur de clé (j'espérais que l'initiale k
serait utilisé comme valeur de l'option).
Je n'ai pas regardé profondément dans le code, donc ne sais pas si il y a une autre partie de l'expression qui me manque (la regex ne semble pas avoir d'autre mots-clés pertinents).
J'espérais que quelqu'un ici pourrait connaître de la présente directive assez bien pour me dire (1) comment le faire, ou (2) que je suis hors de la chance.
Cette réponse, c'est ce qui m'a fait obtenir: stackoverflow.com/a/13808743/199712
OriginalL'auteur kdgregory | 2013-02-13
Vous devez vous connecter pour publier un commentaire.
De votre choix de la valeur de clé est dans la propriété que vous spécifiez par ng-model, c'est à dire,
key
. Ajouter{{key}}
vers le bas de votre code HTML (juste après votre dernière liste de sélection) pour le voir.Comme vous l'avez découvert, Angulaire stocke l'index du tableau dans le code HTML. Pour en savoir plus, consultez AngularJS - attribut value pour sélectionner
key
hors de la portée dans mon code JQuery, mais il est probablement plus facile de construire la sélectionne (je n'ai pas l'avantage de l'interpolation avecngOptions
, c'est donc un tossup).OriginalL'auteur Mark Rajcok