如何在我的情况下检查所有的复选框
How to check all checkbox in my case?
我试图检查所有的checkboxes
在angular的方式。
我有以下代码:
<div>
<div class="checkbox">
<input ng-click="checkAll =! checkAll" type="checkbox"/> check all
</div>
<div class="checkbox" ng-repeat="item in items">
<input type="checkbox" ng-model="checkAll"/> {{item.title}}
</div>
</div>
当我点击check all
时,我能够检查所有的checkboxes
,然而,如果我检查和取消检查单个checkbox
, check all
似乎不再适用于单个checkbox
了。有人能帮我解决这个问题吗?非常感谢!
修订答:
使用指令替代另一个答案的方法:
app.directive('myCheckBox', function(){
return {
restrict: 'E',
scope: {
checkAll: '=',
},
template: '<input check-all="checkAll" type="checkbox" ng-model="check"/>',
replace: true,
link: function(scope) {
scope.$watch('checkAll', function(newVal){
scope.check = newVal;
})
},
}
})
我将父作用域的checkAll
传递给新指令的作用域,并为它添加了一个监视器。
砰砰作响
老答:
你可以使用$parent
(将访问作用域的父作用域):
<input type="checkbox" ng-model="$parent.checkAll"/> {{item.title}}
砰砰作响
并且您应该将checkAll
作为ng-model
作为主复选框,而不是作为单击事件。
您遇到的问题是由于ngRepeat为每个重复创建一个作用域。
您没有显示您的$scope.items
是什么样子的。如果它是一个原语数组,那就有问题了。ng-repeat
将为每个从父作用域继承的项创建一个新的作用域。问题是,对于原语,它只是复制值,而失去了双向绑定。相反,将项设置为对象数组,如下所示:
$scope.items = [
{name: 'a', checked: false},
{name: 'b', checked: false},
{name: 'c', checked: false}
];
你还应该为"Check All"复选框设置一个单独的变量。
$scope.checkAll = false;
现在创建一个函数来遍历所有项目并设置checked
属性:
$scope.checkAllBoxes = function(){
$scope.checkAll = !$scope.checkAll;
angular.forEach($scope.items, function(item){
item.checked = $scope.checkAll;
})
}
像这样把它们绑起来:
<div class="checkbox">
<input type="checkbox" ng-click="checkAllBoxes()" /> check all
</div>
<div class="checkbox" ng-repeat="item in items">
<input type="checkbox" ng-model="item.checked"/> {{item.name}}
</div>
演示相关文章:
- JavaScript-切换“;全部检查”;复选框true/false
- 检查数据库中复选框的值
- JQuery:如何检查某个类的所有复选框是否都在表单中选中
- knockoutjs,复选框是有延迟的检查
- 关于复选框检查的困惑
- 复选框检查器在表中不起作用.代码在没有表标记的情况下工作
- 在复选框检查的更改功能上需要计算一个值
- 复选框检查事件验证没有 Javascript
- 我的JavaScript在复选框检查中有一些错误
- 如何使用angularjs根据复选框检查和取消选中来制作chckbox列表
- 如何使用AngularJS通过已检查的值进行复选框检查
- 根据复选框检查并设置url变量
- 如何在JavaScript/jQuery中弹出模态并运行复选框检查
- JavaScript复选框检查相关问题
- 如何使用输入复选框检查特定图像
- 复选框检查验证
- 数组复选框.检查javascript不工作
- 用于复选框检查的Java字符串到JavaScript字符串数组
- 复选框检查缓慢
- 我有麻烦得到复选框.检查工作