Javascript 如何使用AngularJS选中/取消选中所有复选框?

Javascript 如何使用AngularJS选中/取消选中所有复选框?,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,我是AngularJS的新手,尝试通过单击“切换”按钮来实现选中/取消选中所有复选框,该按钮由bootstrap设计 标记: <button id="toggle" class="btn btn-link btn-mini" ng-click="setActionTypesAllCheck()">Check all</button> <div class="row-fluid" ng-repeat="at in actionsQuery.actionTypes"&

我是AngularJS的新手,尝试通过单击“切换”按钮来实现选中/取消选中所有复选框,该按钮由bootstrap设计

标记:

<button id="toggle" class="btn btn-link btn-mini" ng-click="setActionTypesAllCheck()">Check all</button>

<div class="row-fluid" ng-repeat="at in actionsQuery.actionTypes">
<div class="checkbox">
    <label><input type="checkbox" ng-model="at.checked">{{at.Description}}</label>
</div>
</div>
此时,JavaScript中的代码会选中并取消选中所有复选框,但它不会考虑其中一些复选框是否是手动选中/取消选中的,这意味着它无法正常工作

因此,我需要通过单击“切换”按钮来选中所有复选框,并将其名称更改为“全部取消选中”,无论是否选中某些复选框,反之亦然,也就是说,取消选中所有复选框,并将其名称更改为“全部检查”,无论是否选中某些复选框。

var-app=angular.module(“app”,[]);
函数MainCtrl(){
var vm=这个;
vm.message=“欢迎”;
行动学=
{
操作类型:[
{
核对:对,
描述:“乔恩”
}, {
勾选:假,
描述:“苯教”
}, {
勾选:假,
描述:“蒂姆”
}
]
};
vm.selected=函数(){
}
vm.checkoxesState=true;
vm.updatecheckbox=函数(){
angular.forEach(vm.actionsQuery.actionTypes,函数(at){
at.checked=vm.checkoxesState;
});
vm.checkoxesState=!this.checkoxesState
};
}
角度。模块(“app”)。控制器(“MainCtrl”,MainCtrl)

{{vm.message}
全部检查
全部取消选中
{{at.Description}}

我一直在为复选框使用指令。它很简单,并且有您需要的示例。

我还需要通过以下方式更改为按钮上的文本:当选中所有复选框时,改为“全部取消选中”,反之亦然。@t如果只选中一个“复选框”,则应显示哪个按钮?应该只有一个按钮,不是两个。@tesicg ok,但如果选中一个复选框,则选择哪一个?我还有一个关于此解决方案的问题-为什么此代码在页面上存在标记时进行回发?
$scope.setActionTypesAllCheck = function () {
    $.each($scope.actionsQuery.actionTypes, function (i, cb) {
        cb.checked = !cb.checked;
    });
};