我在循环中有复选框,如下所示:
<li ng-repeat="item in items">
<h2> {{item.better}}</h2>
<span>{{item.startTime}}</span>
<b> {{item.lengthTime}}</b>
<input type="checkbox" checklist-model="item.winner" checklist-value="item">
</li>
我想设置限制,以便用户只能选择最多50个复选框,而不能超过(列表中的总项目数,即100或200等)。
我们如何使用角度js实现这一目标?
非常感谢帮助。
谢谢。
答案 0 :(得分:15)
$scope.checkChanged = function(item){
if(item.winner) $scope.checked++;
else $scope.checked--;
}
和
<input type="checkbox" ng-model="item.winner" ng-change="checkChanged(item)" ng-disabled="checked==limit && !item.winner"/>
通过ng-change跟踪检查,如果达到限制并且未选中复选框,则禁用它们。
不使用$ watch,因为可能会有~200个复选框。
编辑:抱歉忘了点击小提琴上的更新,现在应该可以了。另请注意,使用$scope.limit = 4
;
答案 1 :(得分:1)
您可以询问商品数量并使用ng-disabled
<input type="checkbox" ng-disabled="!item.value && items.length > 50" />
如评论中所述,答案不正确。但我认为你(和其他人回答)正确的想法如何实现你所需要的。我认为,您需要的信息是使用ng-disabled
。
我最喜欢Aperçu回答:)