2016-07-18 147 views
1

我有一个AngularJS项目列表与复选框,我有一个复选框,可以选择所有项目。该功能仅用于选择所有项目,我想要修改它以取消选择所有项目。选择/取消选择所有复选框元素AngularJS

这是我的函数:

$scope.items.allItemsSelected = false; 
$scope.selectAll = function() { 
    for (var i = 0; i < $scope.itemsList.length; i++) { 
     $scope.temp.push($scope.itemsList[i].name); 
     console.log($scope.itemsList[i].name); 
     $scope.itemsList[i].isChecked = $scope.items.allItemsSelected; 
    } 
}; 

这是我的html:

<md-checkbox ng-model="items.allItemsSelected" 
      ng-change="selectAll()"> 
    Select all 
</md-checkbox> 

有谁知道如何修改这也取消元素的想法?

在此先感谢!

+0

你能提供阵列的一个例子'$ scope.itemsList'和在HTML中'ngRepeat'? –

回答

0

使用ng检查的属性。

<md-checkbox ng-model="items.allItemsSelected" ng-change="selectAll()"> 
    Select all 
</md-checkbox> 

checkbox1--

<md-checkbox ng-checked="isSelectAll" ng-model="items.allItemsSelected" ng-change="selectAll()"> 
    Select all 
</md-checkbox> 

checkbox2--

<md-checkbox ng-checked="isSelectAll" ng-model="items.allItemsSelected" ng-change="selectAll()"> 
    Select all 
</md-checkbox> 

JS:

$scope.isSelectAll = false; 
$scope.selectAll = function() { 
    if (!$scope.isSelectAll) { 
     $scope.isSelectAll = true; 
    } else { 
     $scope.isSelectAll = false; 
    } 
} 
+1

请注意'ngChecked'指令不应该和'ngModel'一起使用,因为这可能会导致意外的行为:https://docs.angularjs.org/api/ng/directive/ngChecked –

+0

当我取消选择所有我想要的项目清空我的数组 – blaa

+0

当您取消选择全部时,请将您的数组$ scope.itemsList = []置于其它selectAll函数的条件中。 –