Подтвердить что ты не робот

Ng-select с объектом и его свойствами в angularjs

Я пытался выяснить, как использовать массив, если объекты являются ключевыми значениями для директивы ng-select

это данные, которые я хочу использовать

$scope.selectValues [
    {name: "Options 1", value: "11"}, 
    {name: "Options 2", value: "22"}
    {name: "Options 3", value: "33"}
];

и я хочу, чтобы результат был

<select>
    <option value="11">Options 1</option>
    <option value="22">Options 2</option>
    <option value="33">Options 3</option>
</select>

Может кто-нибудь объяснить, как это сделать? и показать пример настройки директивы? Я просмотрел документы, но у них нет примера, который подходит для этой модели.

4b9b3361

Ответ 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.