【问题标题】:JSON to angular select with ng-optionsJSON 到 ng-options 的角度选择
【发布时间】:2015-06-15 07:14:10
【问题描述】:

我正在尝试使用 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() 等来格式化响应。

【问题讨论】:

  • 到目前为止你运气好吗?

标签: arrays json angularjs select ng-options


【解决方案1】:

使用 Angular JSON 解析器内置函数:$scope.items = angular.fromJson(myJSON) https://docs.angularjs.org/api/ng/function/angular.fromJson

【讨论】:

  • 我试过了,但还是有困难。我为我目前所在的地方做了一个 jsfiddle。我正在获取对象并创建一个数组,然后将其转储到 ng-options 中。我需要将键作为选择选项的值,这样我就可以将 A、B、C 等作为值。如何改变数组来实现这一点? JSFIDDLE
【解决方案2】:

考虑到 json_encoded 数组在遇到 angular 函数时是一个正确的对象,因此我只需将其保留为对象并使用键值配置操作 ng-options 即可使其正常工作。代码如下。

&lt;select ng-options="k as v for (k, v) in cols"&gt;&lt;/select&gt;

jsfiddle

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

之所以成功,是因为我无法控制传入我的控制器的 json 编码数组,但我需要将键引用为 select 选项的值,而不是让 angular 让它用它做自己的事情.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多