本文介绍了ngOptions二级对象的显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这样的结构:
model = [
{
name: 'name1',
items: [
{
name: 'subobj1'
},
{
name: 'subobj2'
}]
},
{
name: 'name2',
items: [
{
name: 'subobj1'
},
{
name: 'subobj2'
}]
},
....
]
问题是:我怎样写ngOptions attrbiute输出这个对象是这样的:
Question is: How do I write ngOptions attrbiute to output this object like this?:
<select>
<optgroup label="name1">
<label>subobj1</label>
<label>subobj2></label>
</optgroup>
....
</group>
此外 - ngRepeat是不是一种选择。我必须为正在使用的工作插件单独做到这一点ngOptions。
Also - ngRepeat is not an option. I have to do this ngOptions alone for plugin being used to work.
推荐答案
ngOptions
不支持多维数组。您必须首先扁平化阵列。
ngOptions
doesn't support multi-dimensional arrays. You must flatten your array first.
阅读更多。
app.filter('flatten' , function(){
return function(array){
return array.reduce(function(flatten, group){
group.items.forEach(function(item){
flatten.push({ group: group.name , name: item.name})
})
return flatten;
},[]);
}
})
和标记
<select ng-model="select"
ng-options="item.name
group by item.group
for item in model | flatten"></select>
这篇关于ngOptions二级对象的显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!