我有一个场景,当我在ng-repeat中选中复选框时,我必须将值放在数组中。
<li ng-repeat="player in team.players">
<div class="row">
<div class="col-md-3 m-t-xs">
<input type="checkbox" ng-model="vm.newEvent.players[$index].selected" ng-change="vm.selectPlayer($index, player)"> {{player.name}}
</div>
<div class="col-md-5 m-t-xs">
<label for="">
<input type="radio" name="{{player.id}}" ng-change="vm.disSelectPlayer($index, player)" ng-model="vm.newEvent.players[$index].casuality.type" value="injured"> Injured
</label>
<label for="">
<input type="radio" name="{{player.id}}" ng-change="vm.disSelectPlayer($index, player)" ng-model="vm.newEvent.players[$index].casuality.type" value="sick"> Sick
</label>
<label for="">
<input type="radio" name="{{player.id}}" ng-change="vm.disSelectPlayer($index, player)" ng-model="vm.newEvent.players[$index].casuality.type" value="other"> Other
</label>
</div>
</div>
</li>
这就是浏览器现在的样子。
问题在于,当我点击 FC Barcelona Accordion 中的任何一个玩家名称时,它也会从 FC Bayern Munich Accordion 中选择相同的索引玩家,我想要的是保持所有球员彼此分开。 我错过了绑定中的东西吗?
答案 0 :(得分:2)
使用checklist-model,AngularJS指令获取复选框列表
在Angular中,复选框<input type="checkbox" ng-model="...">
与一个模型链接。但在实践中,我们通常希望一个模型存储来自多个复选框的已检查值数组。核对表模型在控制器中无需额外代码即可解决该任务。您应该使用<input type="checkbox">
tag:
checklist-model
而不是ng-model checklist-value
- 应该选择什么作为数组项答案 1 :(得分:0)
这是因为这个功能:vm.disSelectPlayer($index, player)
我认为你必须在这里添加索引<li ng-repeat="player in team.players">
,以便为每个玩家提供不同的ID或索引。
试试这个:
<li ng-repeat="(key ,player) in team.players">
并在您调用的函数中使用此Key:
vm.disSelectPlayer($index, player , key)
我希望它有用:)
答案 2 :(得分:0)
这是因为在第4行你写了
ng-model="vm.newEvent.players[$index].selected".
你使用过父母对象即玩家,而不是你可以使用
ng-model="vm.player.selected".
OR
ng-model="vm.team.players[$index].selected".