Дивіться ngOptions
ngOptions (необов’язково) - { comprehension_expression=} - в одній з таких форм:
Для джерел даних масиву :
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
для об'єктів даних:
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
У вашому випадку так і має бути
array = [{ "value": 1, "text": "1st" }, { "value": 2, "text": "2nd" }];
<select ng-options="obj.value as obj.text for obj in array"></select>
Оновлення
З оновленнями AngularJS тепер можна встановити фактичне значення для valueатрибута selectелемента з track byвиразом.
<select ng-options="obj.text for obj in array track by obj.value">
</select>
Як запам'ятати цю потворну штучку
Для всіх людей, яким важко запам’ятати цю синтаксичну форму: я згоден, це не найпростіший чи найкрасивіший синтаксис. Цей синтаксис є свого роду розширеною версією розуміння списку Python, і знаючи, що допомагає мені запам'ятати синтаксис дуже легко. Це щось подібне:
Код 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']
Це насправді той самий синтаксис, що і перший, перерахований вище. Однак у <select>нас зазвичай потрібно розмежовувати фактичне значення коду та текст, який відображається (мітка) в <select>елементі.
Мовляв, нам потрібен person.idкод, але ми не хочемо показувати idйого користувачеві; ми хочемо показати його ім'я. Так само нас не цікавить person.nameкод. Існує asключове слово, щоб позначити речі. Так стає так:
person.id as person.name for person in people
Або замість цього person.idнам може знадобитися сам personекземпляр / посилання. Дивись нижче:
person as person.name for person in people
Для об’єктів JavaScript застосовується той самий метод. Просто пам’ятайте, що предмети в об’єкті деконструюються (key, value)парами.