使用ng-options进行角度选择的JSON

时间:2015-04-09 18:54:50

标签: arrays json angularjs select ng-options

我试图使用angular ng-options将来自AJAX请求的JSON编码响应转换为select语句。我无法控制JSON响应来自何处的PHP源代码。

回复的形式为:

{"A":"Col1","B":"Col2","C":"Col3","D":"Col4"}

我正在使用一个简单的选择下拉列表,需要使用索引集作为值并将值设置为下拉文本来填充上面的JSON。示例如下。

<select ng-model="selectedItem" ng-options="item for item in items">

选项应该导致:

<option value="A">Col1</option>  
<option value="B">Col2</option>
<option value="C">Col3</option>
...

我不确定我对JSON响应的格式缺少什么,因此它将在ng-options中使用。我尝试过所有形式的ng-options无济于事。我还尝试使用json.parse,json.stringify,.eval()等格式化响应。

2 个答案:

答案 0 :(得分:4)

考虑到json_encoded数组在点击角度函数时是一个正确的对象,我只能通过将其保持为对象并使用键值配置来操作ng-options来实现此功能。代码如下。

<select ng-options="k as v for (k, v) in cols"></select>

jsfiddle

我在这里引用了帖子:ng-options with object data source

这样做是因为我无法控制进入我的控制器的json编码数组但是我需要引用该键作为select的选项的值而不是让角度让它做自己的事情用它。

答案 1 :(得分:0)

在函数中使用角度JSON解析器构建:$scope.items = angular.fromJson(myJSON) https://docs.angularjs.org/api/ng/function/angular.fromJson