Javascript 选中AngularJS中的所有复选框
我有这样一个全选复选框和列表复选框。Javascript 选中AngularJS中的所有复选框,javascript,angularjs,checkbox,angularjs-ng-change,Javascript,Angularjs,Checkbox,Angularjs Ng Change,我有这样一个全选复选框和列表复选框。 从中接收数据的复选框列表 $scope.contacts = [ {"name": "Bambizo", "check": false}, {"name": "Jimmy", "check": false}, {"name": "Tommy", "check": false}, {"name": "Nicky", "check": false} ]; 我想当我选中一个全选复选框时,它会使下面
从中接收数据的复选框列表
$scope.contacts = [
{"name": "Bambizo", "check": false},
{"name": "Jimmy", "check": false},
{"name": "Tommy", "check": false},
{"name": "Nicky", "check": false}
];
我想当我选中一个全选复选框时,它会使下面列表中的所有复选框都被选中或取消选中。这是我的代码:
选中所有复选框:
<input type="checkbox" ng-model="checkAllContact" ng-change="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;
}
}
}
检查所有联系人功能:
<input type="checkbox" ng-model="checkAllContact" ng-change="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;
}
}
}
$scope.checkAllContact=function(){
var allChecked=false;
对于(i=0;i<$scope.contacts.length;i++){
if($scope.contacts[i].check==true){
allChecked=true;
}否则{
allChecked=false;
}
}
如果(allChecked=true){
对于(i=0;i<$scope.contacts.length;i++){
$scope.contacts[i].check=false;
}
}否则{
对于(i=0;i<$scope.contacts.length;i++){
$scope.contacts[i].check=true;
}
}
}
但当我运行并单击“全选”复选框时。它会出错:
如何解决这个问题,或者有其他的方法吗?谢谢ng model=“checkAllContact”
方法checkAllContact
具有相同的名称
checkAllContact
范围变量被checkAllContact
覆盖
您需要更改函数名才能解决此问题。您的函数名和变量名(ng型号)都相同,请更改其中一个 你也可以用一种更简单的方法来做,比如说 HTML:
参见示例您是否尝试过
ng change=“checkAllContact()”
?它仍然会出错:“TypeError:无法读取null的属性“0”。谢谢。它不会出错。但是我的函数仍然没有运行:(.我可以在选中复选框时运行函数吗?@PhamMinhTan是否更改了函数名?是的,我更改了。方法和变量是different@PhamMinhTan你能用你的尝试更新你的问题吗till@PhamMinhTan当你准备这么做的时候。我试着按照你的答案去做。但是我的$scope.checkAllContact1总是错误的。@PhamMinhTan。它在我的小提琴中工作,不是吗?如果它仍然不工作,你能提供小提琴吗?是的。你的小提琴运行良好。我将在小提琴中更新我的代码。谢谢。