ng-options中的键值对
我需要使用关联数组作为使用AngularJS的select选项的数据源。
是否有可能使用这样的数组?
{ "key1": "val1", "key2": "val2", "key3": "val3", ... }
并得到这样的东西:
<select> <option value="key1">val1</option> <option value="key2">val2</option> <option value="key3">val3</option> ... </select>
我阅读文档 ,但我不明白如何实现这一点。
使用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 -通过的最-NG选项function于angularjs /
Lin-Tsu Lin回答实际上提供了访问对象的两种方式。 只是想添加更多的行 –
因为ng-repeat
指令为数组中的每个项目重复一段HTML代码,所以它可以用来在下拉列表中创build选项,但是ng-options
指令特别用于填充选项的下拉列表,并且在至less一个重要的优点:
使用
ng-options
进行的下拉菜单允许选定的值为一个对象,而由ng-repeat
下拉菜单必须是一个string。
为参考添加一个示例:
ng-repeat
: http : //www.w3schools.com/angular/tryit.asp? ng-repeat
= try_ng_select_repeat_selected
ng-options
: http : //www.w3schools.com/angular/tryit.asp? ng-options
=try_ng_select_object
有关完整的参考资料,请前往http://www.w3schools.com/angular/angular_select.asp