Bkz ngOptions
ngOptions (isteğe bağlı) - { comprehension_expression=
} - aşağıdaki formlardan birinde:
Dizi veri kaynakları için :
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
Nesne veri kaynakları için:
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
Sizin durumunuzda,
array = [{ "value": 1, "text": "1st" }, { "value": 2, "text": "2nd" }];
<select ng-options="obj.value as obj.text for obj in array"></select>
Güncelleme
AngularJS'deki güncellemelerle, artık ifadeyle öğenin value
niteliği için gerçek değeri ayarlamak mümkündür .select
track by
<select ng-options="obj.text for obj in array track by obj.value">
</select>
Bu çirkin şeyleri hatırlamak nasıl
Bu sözdizimi formunu hatırlamakta zorlanan herkes için: Bunun en kolay veya en güzel sözdizimi olmadığını kabul ediyorum. Bu sözdizimi, Python'un söz dizimini çok kolay hatırlamama yardımcı olan liste kavrayışlarının ve bilgisinin genişletilmiş bir versiyonudur. Bunun gibi bir şey:
Python kodu:
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']
Bu aslında yukarıda listelenen ilk sözdizimiyle aynı sözdizimidir. Ancak, <select>
genellikle koddaki gerçek değer ile bir <select>
öğede gösterilen metin (etiket) arasında ayrım yapmamız gerekir .
Kodda ihtiyacımız var person.id
ama id
kullanıcıya göstermek istemiyoruz ; adını göstermek istiyoruz. Aynı şekilde, person.name
kodla ilgilenmiyoruz . Bir as
şeyleri etiketlemek için anahtar kelime gelir . Böylece şöyle olur:
person.id as person.name for person in people
Ya da bunun yerine örneğe / referansa person.id
ihtiyacımız olabilir person
. Aşağıya bakınız:
person as person.name for person in people
JavaScript nesneleri için de aynı yöntem geçerlidir. Nesnedeki öğelerin (key, value)
çiftlerle yapısız olduğunu unutmayın .