Vedi ngOptions
ngOptions (opzionale) - { comprehension_expression=
} - in una delle seguenti forme:
Per origini dati array :
label for value in array
select as label for value in array
label group by group for value in array
select as label group by group for value in array track by trackexpr
Per origini dati oggetto:
label for (key , value) in object
select as label for (key , value) in object
label group by group for (key, value) in object
select as label group by group for (key, value) in object
Nel tuo caso, dovrebbe essere
array = [{ "value": 1, "text": "1st" }, { "value": 2, "text": "2nd" }];
<select ng-options="obj.value as obj.text for obj in array"></select>
Aggiornare
Con gli aggiornamenti su AngularJS, è ora possibile impostare il valore effettivo per l' value
attributo di select
elemento con track by
espressione.
<select ng-options="obj.text for obj in array track by obj.value">
</select>
Come ricordare questa roba brutta
A tutte le persone che hanno difficoltà a ricordare questo modulo di sintassi: sono d'accordo che questa non è la sintassi più semplice o bella. Questa sintassi è una specie di versione estesa della comprensione e della comprensione dell'elenco di Python che mi aiuta a ricordare molto facilmente la sintassi. È qualcosa del genere:
Codice Python:
my_list = [x**2 for x in [1, 2, 3, 4, 5]]
> [1, 4, 9, 16, 25]
# Let people to be a list of person instances
my_list2 = [person.name for person in people]
> my_list2 = ['Alice', 'Bob']
Questa è in realtà la stessa sintassi della prima elencata sopra. Tuttavia, di <select>
solito è necessario distinguere tra il valore effettivo nel codice e il testo mostrato (l'etichetta) in un <select>
elemento.
Ad esempio, abbiamo bisogno person.id
del codice, ma non vogliamo mostrarlo id
all'utente; vogliamo mostrare il suo nome. Allo stesso modo, non ci interessa person.name
il codice. Arriva la as
parola chiave per etichettare le cose. Quindi diventa così:
person.id as person.name for person in people
Oppure, invece di person.id
potremmo aver bisogno person
dell'istanza / riferimento stesso. Vedi sotto:
person as person.name for person in people
Per gli oggetti JavaScript, si applica anche lo stesso metodo. Ricorda solo che gli oggetti nell'oggetto sono decostruiti con (key, value)
coppie.