问题描述
嗨,我正在使用angularjs构建表单,我从PHP这样获得了一个数组返回值,我想从该数组构建出这样的表单。
[
{
id: 1,name: "Company",attribute_values:[
{
id: 1,name: "Chinese"
},{
id: 2,name: "Japanese"
}
]
},{
id: 2,name: "Color",attribute_values:[
{
id: 4,name: "Black"
},{
id: 5,name: "Red"
}
]
}
]
我想从选择选项中选择所有选择的值,但尝试不了。预先谢谢你。
<div ng-repeat="attrib in attributes.data">
<label class="col-sm-5 col-form-label"><% attrib.name %></label>
<div class="col-sm-5">
<select ng-model="attrib.attributeSelected" ng-options="atb.value as atb.name for atb in attrib.attribute_values">
</select>
</div>
</div>
解决方法
您没有提到选择后想要的输出格式。
我做了一个变通办法,它将在每个属性内创建一个属性selectedOption
,以将所选选项的值保存在相应的属性中。
<div ng-repeat="attrib in data">
<label class="col-sm-5 col-form-label">{{attrib.name}}</label>
<div class="col-sm-5">
<select ng-model="attrib.selectedOption">
<option default selected disabled value="">Select</option>
<option ng-repeat="x in attrib.attribute_values" value={{x.id}}>{{x.name}}</option>
</select>
</div>
</div>
将像下面这样插入属性selectedOption
,
[{
"id": 1,"name": "Company","attribute_values": [{
"id": 1,"name": "Chinese"
},{
"id": 2,"name": "Japanese"
}],"selectedOption": "1"
},{
"id": 2,"name": "Color","attribute_values": [{
"id": 4,"name": "Black"
},{
"id": 5,"name": "Red"
}],"selectedOption": "5"
}]