Angularjs 两级ng选项嵌套对象

Angularjs 两级ng选项嵌套对象,angularjs,Angularjs,编辑:尽可能只使用ng选项 数据的外观: vm.category = [ 0: { label: 'Label A', children: [ { label: 'Label A.1', value: 'labelA1', } ] } 1: {}, 2: {} ] 它在HTML中的外观预期的HTML &

编辑:尽可能只使用
ng选项

数据的外观:

vm.category = [
    0: {
        label: 'Label A',
        children: [
            {
                label: 'Label A.1',
                value: 'labelA1',
            }
        ]
    }

    1: {},
    2: {}
]
它在HTML中的外观<代码>预期的HTML

<select>
    <optionGroup> Label A </optionGroup>
        <option value="labelA1"> Label A.1 </option>
        <option value="labelA2"> Label A.2 </option>
    <optionGroup> Label B </optionGroup>
        <option  value="labelB1"> Label B.1 </option>
</select>
你可以这样做

 <select ng-model='theModel' ng-change="display(theModel)">
        <optgroup ng-repeat='group in collection' label="{{group.Name}}">
        <option ng-repeat='veh in group.Fields' value='{{group.Name}}::{{veh.Name}}'>{{veh.Name}}</option>
        </optgroup>
</select>

{{veh.Name}

你可以这样做

 <select ng-model='theModel' ng-change="display(theModel)">
        <optgroup ng-repeat='group in collection' label="{{group.Name}}">
        <option ng-repeat='veh in group.Fields' value='{{group.Name}}::{{veh.Name}}'>{{veh.Name}}</option>
        </optgroup>
</select>

{{veh.Name}

最简单的方法是将数据映射到
ng选项
“分组方式”表达式更容易使用的格式

angular.module('so',[]).controller('snippet',function(){
this.categoru=[{“label”:“label A”,“children”:[{“label”:“label A.1”,“value”:“labelA1”}]},{“label”:“label B”,“children”:[{“label”:“label B.1”,“value”:“labelB1”}]}];
this.options=this.categoru.reduce((平面,组)=>{
Array.prototype.push.apply(flat、group.children.map(child=>{
返回Object.assign({
父项:group.label
},儿童);
}));
返回平面;
}, []);
console.log(this.options);
});

vm.selected={{vm.selected | json}

最简单的方法是将数据映射到
ng选项
的“分组方式”表达式更容易使用的格式

angular.module('so',[]).controller('snippet',function(){
this.categoru=[{“label”:“label A”,“children”:[{“label”:“label A.1”,“value”:“labelA1”}]},{“label”:“label B”,“children”:[{“label”:“label B.1”,“value”:“labelB1”}]}];
this.options=this.categoru.reduce((平面,组)=>{
Array.prototype.push.apply(flat、group.children.map(child=>{
返回Object.assign({
父项:group.label
},儿童);
}));
返回平面;
}, []);
console.log(this.options);
});

vm.selected={{vm.selected | json}

你想让
ng模型成为什么样子?我不是真的在触摸
ng模型
。我的意思是你想在选择时分配什么?更新
预期的HTML
。你想让
ng模型成为什么样子?我不是真的在触摸
ng模型
。我的意思是你想分配什么选择?更新了
预期的HTML
。我也读过关于使用
ng repeat
的内容,但是如果您只关注HTML,是否可以只使用
ng options
?@DevTestAcct,那么您应该使用此解决方案,因为
ng options
不会生成您想要的
属性。我也读过关于使用
ng repeat
的内容,但是如果您只是在使用HTML,那么是否可以只使用
ng options
?@devestacct,然后,您应该使用此解决方案,因为
ng options
不会生成您想要的
属性示例代码应该显示实际的选择组件以使其更具说服力…示例代码应该显示实际的选择组件以使其更具说服力。。。