指定一个对象来选择value - ng-options
assign a object to select value - ng-options
我有一个像这样的对象
var myObject = {'123':'something','345':'something else'}
我需要将其渲染为:
<option value={'123':'something'}>something</option>
这是我尝试过的:
ng-options="someObj as label for (id,label) in myObject
不工作!
模型得到'label'而不是整个对象。甚至可以将对象分配给SELECT元素的值属性吗?
编辑
筛选形式为:{'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;
}
});
您需要提供一个键为&value属性设置为ngOptions。为此,您需要修改对象的结构以实际具有这些属性。
一种方法是使用过滤器为ngOptions返回一个有效的数组:ng-options="option.label for option in data.availableOptions | putKeyAndValue"
你可以检查这个活塞与工作过滤器。
如果输入是:
[{'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属性,则使用此过滤器。
输入相同的输入,它将返回如下:
[{"id":123,"label":"something","$$hashKey":"object:3"},{"id":345,"label":"something else","$$hashKey":"object:4"}]
如果您仍然需要返回一个新的数组,那么不要在过滤器上这样做。在这种情况下,您可以在将数据传递给视图之前处理数据,所有这些都像这样在控制器中完成。
与输入:{'123':'something', '345':'something else'}
输出:[{"id":123,"label":"something"},{"id":345,"label":"something else"}]
使用select as something for a (key,value) in set of Values
ng-options="key as value for (key,value) in myObject"
将key放入选项值中,value放入标签中。除此之外,你还需要使用ng-model和ngChange。因为你不能将对象传递给值,所以我们的想法是在你的控制器中这样做。
<select ng-model="val" ng-change="changeVal(val)" ng-options="key as value for (key,value) in ops">
在你的控制器中你已经有了myObject你要添加selected item和changeVal函数
<script>
var selectedObject;
$scope.changeVal = function(val){
selectedObject = {};
selectedObject[val] = myObject[val];
}
</script>
这是一个不将对象放入值attr的解决方案,因为它是一个字符串。
相关文章:
- Angularjs ng-options selected value of dropdownlist
- Angularjs ng-options 问题仅适用于 Chrome 浏览器
- 如何在ng-options中添加两个索引,并使用Angular.js动态设置值
- 不确定在我的情况下使用 ng-options 的最佳方法
- ng-options from a json with angularjs
- Angular JS ng-options 返回 “?对象:005 ?
- AngularJS中的data-ng-options指令
- angularjs ng-options with formate date delete duplicates
- 角度 1.x ng-options 从值开始的负载下拉列表
- 如何在“ng-options”属性中循环访问对象内的数组
- ng-重复共享相同ng模型的ng-options
- ng-init 未在 ng-options 中设置第一个选择选项
- 将枚举值绑定到 ng-options 角度 js
- Angulajs ng-options from a json with child object
- ng-options中的更多选项
- 指定一个对象来选择value - ng-options
- ng-options value is wrong
- Angular的ng-options在简单的字符串数组中以value为条件
- ng-options中的Value属性不是正确的数据类型
- 如果没有从ng-options中选择value,如何使用ng-change