gpt4 book ai didi

javascript - 分配一个对象来选择值 - ng-options

转载 作者:行者123 更新时间:2023-11-27 23:49:00 24 4
gpt4 key购买 nike

我有一个这样的对象

var myObject = {'123':'something','345':'something else'}

我需要将其渲染为:

<option value={'123':'something'}>something</option>

这是我尝试过的:

ng-options="someObj as label for (id,label) in myObject

不起作用!

模型获取“标签”,而不是整个对象。是否可以将对象分配给 SELECT 元素的 value 属性?

编辑

过滤以下形式的对象:{'123':'something','345':'something else'}

.filter('putKeysandValues',function(){
return function(options){
var arr = [];
angular.forEach(options,function(value,key){
arr.push({'key':key,'label':value})
});
return arr;
}
});

最佳答案

您需要向 ngOptions 提供一个具有键和值属性的对象。为此,您需要修改对象的结构才能真正具有此属性。

一种方法是使用为 ngOptions 返回有效数组的过滤器:

ng-options="option.label for option in data.availableOptions | putKeyAndValue"

您可以查看this plunker带有工作过滤器。

如果输入是:

[{'123':'something'}, {'345':'something else'}]

那么输出是:

[{"123":"something","id":123,"label":"something","$$hashKey":"object:3"},{"345":"something else","id":345,"label":"something else","$$hashKey":"object:4"}]

如果要删除过时的 id 属性,请使用 this filter .

如果输入相同的输入,它将返回:

[{"id":123,"label":"something","$$hashKey":"object:3"},{"id":345,"label":"something else","$$hashKey":"object:4"}]

如果您仍然需要返回新数组,则不要在过滤器上执行此操作。在这种情况下,您可以在将数据传递到 View 之前处理数据,所有这些都在 Controller 中 like this .

输入:

{'123':'something', '345':'something else'}

输出:

[{"id":123,"label":"something"},{"id":345,"label":"something else"}]

关于javascript - 分配一个对象来选择值 - ng-options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32876817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com