Select AngularJS 中的所有复选框
Select All Checkbox in AngularJS
我有一个 select 所有复选框和列表复选框,就像这样。
复选框列表从
接收数据
$scope.contacts = [
{"name": "Bambizo", "check": false},
{"name": "Jimmy", "check": false},
{"name": "Tommy", "check": false},
{"name": "Nicky", "check": false}
];
我希望当我选中 Select 所有复选框时,它会选中或取消选中下面列表中的所有复选框。这是我的代码:
Select 所有复选框:
<input type="checkbox" ng-model="checkAllContact" ng-change="checkAllContact(checkAllContact)">
checkAllContact 函数:
$scope.checkAllContact = function(){
var allChecked = false;
for(i = 0; i< $scope.contacts.length; i++){
if ($scope.contacts[i].check == true){
allChecked = true;
}else {
allChecked = false;
}
}
if (allChecked = true){
for(i = 0; i< $scope.contacts.length; i++){
$scope.contacts[i].check = false;
}
}else{
for(i = 0; i< $scope.contacts.length; i++){
$scope.contacts[i].check = true;
}
}
}
但是当我 运行 并单击 Select 全部复选框时。它会出错:
怎么解决的或者有什么办法吗?谢谢
ng-model="checkAllContact"
& 方法 checkAllContact
同名。
checkAllContact
范围变量被 checkAllContact
覆盖。
您需要更改函数名称才能解决此问题。
你的函数名和变量名(ng-model)一样,换一个吧
你也可以用更简单的方式来做,例如
HTML:
<input type="checkbox" ng-model="checkAllContact1" ng-change="checkAllContact()">
<div ng-repeat="item in contacts">
<input type="checkbox" ng-model="item.check"/>
</div>
JS:
$scope.checkAllContact = function(){
if ($scope.checkAllContact1) {
$scope.checkAllContact1 = true;
} else {
$scope.checkAllContact1 = false;
}
angular.forEach($scope.contacts, function (item) {
item.check = $scope.checkAllContact1;
});
}
看例子Fiddle
我有一个 select 所有复选框和列表复选框,就像这样。
复选框列表从
接收数据$scope.contacts = [
{"name": "Bambizo", "check": false},
{"name": "Jimmy", "check": false},
{"name": "Tommy", "check": false},
{"name": "Nicky", "check": false}
];
我希望当我选中 Select 所有复选框时,它会选中或取消选中下面列表中的所有复选框。这是我的代码:
Select 所有复选框:
<input type="checkbox" ng-model="checkAllContact" ng-change="checkAllContact(checkAllContact)">
checkAllContact 函数:
$scope.checkAllContact = function(){
var allChecked = false;
for(i = 0; i< $scope.contacts.length; i++){
if ($scope.contacts[i].check == true){
allChecked = true;
}else {
allChecked = false;
}
}
if (allChecked = true){
for(i = 0; i< $scope.contacts.length; i++){
$scope.contacts[i].check = false;
}
}else{
for(i = 0; i< $scope.contacts.length; i++){
$scope.contacts[i].check = true;
}
}
}
但是当我 运行 并单击 Select 全部复选框时。它会出错:
怎么解决的或者有什么办法吗?谢谢
ng-model="checkAllContact"
& 方法 checkAllContact
同名。
checkAllContact
范围变量被 checkAllContact
覆盖。
您需要更改函数名称才能解决此问题。
你的函数名和变量名(ng-model)一样,换一个吧
你也可以用更简单的方式来做,例如
HTML:
<input type="checkbox" ng-model="checkAllContact1" ng-change="checkAllContact()">
<div ng-repeat="item in contacts">
<input type="checkbox" ng-model="item.check"/>
</div>
JS:
$scope.checkAllContact = function(){
if ($scope.checkAllContact1) {
$scope.checkAllContact1 = true;
} else {
$scope.checkAllContact1 = false;
}
angular.forEach($scope.contacts, function (item) {
item.check = $scope.checkAllContact1;
});
}
看例子Fiddle