假设我有一个像这样的控制器:
function MockController($scope) {
$scope.objs = [{"a": "true"},{"b": "false"}];
$scope.Value = "";
}
在html视图中,我有类似的内容:
<select class="input-block-level" ng-model="Value"
ng-options="(obj.key, obj.value) for obj in objs" required>
但是,无论我如何尝试,角度似乎都不像元组符号。我试过没有父母,没有骰子。是否有一种通用的方法来处理ng-repeat中的哈希表/字典?也就是说,假设您不知道密钥的名称,并且它们的密钥本身应该像这样使用:
<option value={{obj.key}}>{{obj.value}}</option>
答案 0 :(得分:5)
我认为不可能在ng-options
中引用未知密钥。
我可能会尝试在此过程中的某处编写数据包装器,将其转换为类似的内容:
[{"key": "a", "value": "true"},
{"key": "b", "value": "false"}]
(问题非常有趣,我实际上已经编写了一个:http://jsfiddle.net/RCU8M/ - 但是在没有ECMAScript5支持的浏览器中这不起作用,所以你可能想通过使用更优雅的解决方案来修复它,比如get keys of json-object in JavaScript。)
答案 1 :(得分:2)
不是
<select ... ng-options="(key, value) in objs" ...>
答案 2 :(得分:1)
这应该像这样使用:
<select>
<option ng-repeat="objin objs" value="{{obj.key}}">{{obj.value}}</option>
</select>