3

假设我有一个这样的控制器:

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>

但是,无论我如何尝试,angular 似乎都不喜欢元组表示法。我试过没有括号也没有骰子。是否有一种通用的方法来处理 ng-repeat 中的哈希表/字典?也就是说,假设您不知道密钥的名称,并且它们的密钥本身应该像这样使用:

<option value={{obj.key}}>{{obj.value}}</option>
4

3 回答 3

5

我认为不可能在ng-options.

我可能会尝试在途中的某个地方为数据编写一个包装器,将其转换为以下内容:

[{"key": "a", "value": "true"},
 {"key": "b", "value": "false"}]

(这个问题太有趣了,我实际上已经写了一个:http: //jsfiddle.net/RCU8M/ - 但是在没有 ECMAScript5 支持的浏览器中它不起作用,所以你可能想通过使用更优雅的解决方案来解决这个问题,就像在JavaScript 中获取 json-object 的键一样。)

于 2013-04-10T08:16:31.697 回答
2

是不是

<select ... ng-options="(key, value) in objs" ...>
于 2013-04-10T02:37:05.437 回答
1

这应该像这样使用:

<select>
<option ng-repeat="objin objs" value="{{obj.key}}">{{obj.value}}</option>
</select>
于 2013-10-30T08:47:09.843 回答