Lihat Pilihan
ngOptions (opsional) - { comprehension_expression=
} - di salah satu formulir berikut:
Untuk sumber data larik :
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
Untuk sumber data objek:
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
Dalam kasus Anda, seharusnya begitu
array = [{ "value": 1, "text": "1st" }, { "value": 2, "text": "2nd" }];
<select ng-options="obj.value as obj.text for obj in array"></select>
Memperbarui
Dengan pembaruan di AngularJS, sekarang dimungkinkan untuk menetapkan nilai aktual untuk value
atribut select
elemen dengan track by
ekspresi.
<select ng-options="obj.text for obj in array track by obj.value">
</select>
Bagaimana cara mengingat hal-hal buruk ini
Untuk semua orang yang mengalami kesulitan untuk mengingat bentuk sintaksis ini: Saya setuju ini bukan sintaksis yang paling mudah atau indah. Sintaks ini adalah jenis versi lanjutan dari pemahaman daftar Python dan pengetahuan yang membantu saya mengingat sintaks dengan sangat mudah. Ini sesuatu seperti ini:
Kode 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']
Ini sebenarnya sintaks yang sama dengan yang pertama di atas. Namun, dalam <select>
kita biasanya perlu membedakan antara nilai aktual dalam kode dan teks yang ditampilkan (label) dalam suatu <select>
elemen.
Seperti, kita perlu person.id
dalam kode, tetapi kami tidak ingin menunjukkan id
kepada pengguna; kami ingin menunjukkan namanya. Demikian juga, kami tidak tertarik pada person.name
kode. Ada as
kata kunci untuk memberi label barang. Jadi menjadi seperti ini:
person.id as person.name for person in people
Atau, alih-alih person.id
kita bisa membutuhkan person
instance / referensi itu sendiri. Lihat di bawah:
person as person.name for person in people
Untuk objek JavaScript, metode yang sama juga berlaku. Ingatlah bahwa item dalam objek didekonstruksi dengan (key, value)
berpasangan.