【发布时间】:2015-08-10 21:12:45
【问题描述】:
我在嵌套的 ng-repeats 中有一个带有复选框和单选按钮的网页。当我单击复选框时,底层视图模型正在正确更新,但是当我单击单选按钮时,视图模型没有正确更新。在一个组中,当我选择一个选项时,所选模型属性会更新为 true,但另一个不会更改为 false。
例如当我一个一个点击鸡的单选按钮时,它们都变成了真的。当我选择任何一个时,我希望其他的成为 false
我的视图模型如下所示。
$scope.itemGroups = [{
"name": 'Non Veg',
"items": [{
"selected": false,
"name": 'Chicken',
"Portions": [{
"selected": false,
"name": '1 Cup'
}, {
"selected": false,
"name": '2 Cups'
}, {
"selected": false,
"name": '3 cups'
}]
}, {
"selected": true,
"name": 'Egg',
"Portions": [{
"selected": false,
"name": '1 Cup'
}, {
"selected": false,
"name": '2 Cups'
}, {
"selected": false,
"name": '3 cups'
}]
}]
}, {
"name": 'Veggie',
"items": [{
"selected": false,
"name": 'Potato',
"Portions": [{
"selected": false,
"name": '1 Cup'
}, {
"selected": false,
"name": '2 Cups'
}, {
"selected": false,
"name": '3 cups'
}]
}, {
"selected": false,
"name": 'Tomato',
"Portions": [{
"selected": false,
"name": '1 Cup'
}, {
"selected": false,
"name": '2 Cups'
}, {
"selected": false,
"name": '3 cups'
}]
}]
}];
我绑定到html的方式:
<div ng-repeat="itemGrp in itemGroups">
<h1>{{itemGrp.name}}</h1>
<div ng-repeat="item in itemGrp.items">
<input type="checkbox" ng-model="item.selected" />{{item.name}}
<label ng-repeat="portion in item.Portions">{{portion.name}}
<input type="radio" name="radio_{{itemGrp.name}}" ng-model="portion.selected" ng-value="true" />
</label>
</div>
</div>
小提琴:http://jsfiddle.net/awqv0rb0/16/
您能指导我解决这里的问题吗?有没有更好的方法来实现我在这里尝试做的事情?我需要遍历 JSON 并获取所选项目的值。
【问题讨论】:
标签: javascript angularjs radio-button angularjs-ng-repeat