我在angularJS上有ng-repeat复选框。我正在使用库checkboxlist来实现多个带有ng-repeat的复选框。我要求用户只能点击最大数量的复选框。我使用了$ event.stopPropagation,它可以工作,但是ng-model没有更新,因为我不知道如何访问checkboxlist。停止点击复选框列表
控制器
$scope.mealCBChanged = function($event, mc){
if(mc.selectedCBId.length > 2){
$event.preventDefault();
alert("You can't select more than " + 2);
}
}
HTML
<div ng-repeat="mc in mealC">
<div ng-repeat="m in mc.meals">
<input type="checkbox" name="{{ m.id }}"
id="{{ m.name }}"
checklist-model="mc.selectedCBId"
ng-init="mc.selectedCBId = []"
ng-click="mealCBChanged($event, mc)"
checklist-value="m.name"/>
<label for="{{ m.name }}"><span class="checkbox primary primary"><span></span></span>{{ m.name }}</label>
</div>
</div>
问题
当我选择第三复选框,则警报调用和吨hird复选框不会单击,因为$ event.preventDefault()工作正常。但是mc.selectedCBId在数组中有3个项目,它应该有两个项目。
如果您选择第四个复选框,将mc.selectedCBId有数组中的3个或4个项目? –
@GaliloGalilo mc.selectedCBId将在您点击复选框时继续添加项目。 –