Ответ 1
Я предпочитаю синтаксис select as
из ng-options. (Это не работает с track by
). В частности, мне нравится, что форма select as label for value in array
, что позволяет вам изменить то, что на самом деле является привязкой (select
) от отображаемого (label
).
Из документации синтаксис состоит из 4 частей:
-
select
это выражение, на которое вы действительно хотите привязать. Часто это свойство элемента в массиве. В вашем случае этоstatus.id
-
label
- это выражение, определяющее, как отображать объект в раскрывающемся списке. Опять же, это часто свойство, но на самом деле это может быть любое угловое выражение (например,status.name + ': ' + status.description
). Вstatus.name
это простоstatus.name
-
value
- это имя (псевдоним), которое вы хотите использовать для одного элемента массива. В вашемstatus
но это просто имя, поэтому вы можете изменить его на что угодно (вам тоже нужно будет изменитьselect
иlabel
). -
array
- это, очевидно, массив, который вы хотите использовать в качестве выпадающего источника данных. В вашем - этоcontroller.statuses
.
В вашем полностью собранном коде:
ng-options="status.id as status.name for status in controller.statuses"