Ответ 1
ng-options
поддерживает источник данных на основе массива и объекта. Например:
Источник данных на основе массива:
$scope.options = ["Blue", "Red", "Yellow"]
<select ng-model="selected"
ng-options="for o in options">
Источник данных на основе объектов:
$scope.options = {
"Blue": "color_1",
"Red": "color_2",
"Green": "color_3"
}
<select ng-model="selected"
ng-options="name for (name, value) in options">
Однако вы используете несовместимую структуру данных для опции на основе массива. Вы можете использовать следующее:
<select ng-model="selected"
ng-options="o.name for o in options">
и используйте выбранное значение как selected.value
. (selected
привязан к одному из объектов в массиве). Это не будет работать, если вы хотите отправить форму через HTTP, поэтому в этом случае вы должны преобразовать параметры в одну из вышеупомянутых структур данных.
Я включил эти три использования здесь: http://plnkr.co/IEBQkqJNifY5MZWloDP6
Изменить: Итак, сегодня я просмотрел документы и нашел способ работать с вашей исходной структурой данных.
<select ng-model="selected"
ng-options="o.value as o.name for o in options">
Также обновляется plnkr.