пары ключ-значение в НГ-параметры
мне нужно использовать ассоциативный массив как источник данных для моего select
параметры с помощью AngularJS.
можно ли использовать такой массив?
{
"key1": "val1",
"key2": "val2",
"key3": "val3",
...
}
и получить что-то вроде этого:
<select>
<option value="key1">val1</option>
<option value="key2">val2</option>
<option value="key3">val3</option>
...
</select>
я прочитала docs, но я не могу понять, как этого добиться.
3 ответа:
использовать
ng-option
:<select ng-model="blah" ng-options="key as value for (key , value) in data"></select>
или использовать
ng-repeat
:<select> <option ng-repeat="(key, value) in data" value="{{key}}">{{value}}</option> </select>
данные в контроллере:
$scope.data = { "key1": "val1", "key2": "val2", "key3": "val3", ... };
в следующей статье обсуждается множество способов, которыми вы можете использовать ngOptions (на сегодняшний день самое ясное, самое подробное объяснение, которое я когда-либо видел): http://www.undefinednull.com/2014/08/11/a-brief-walk-through-of-the-ng-options-in-angularjs/
ответ Чэнь-Цу Линь на самом деле дает оба способа доступа к объектам. Просто хочу добавить еще несколько строк -
потому что
ng-repeat
директива повторяет блок HTML кода для каждого элемента в массиве, он может быть использован для создания параметров в выпадающем списке, ноng-options
директива была сделана специально для заполнения выпадающего списка опциями и имеет как минимум одно важное преимущество:выпадающие списки сделаны с
ng-options
позволяет выбрать значение объект, в то время как выпадающие списки сделаны изng-repeat
должна быть строка.добавление примера для справки:
ng-repeat
: http://www.w3schools.com/angular/tryit.asp?filename=try_ng_select_repeat_selected
ng-options
: http://www.w3schools.com/angular/tryit.asp?filename=try_ng_select_objectдля полной справки, голова на http://www.w3schools.com/angular/angular_select.asp