这段时间在学习angular,做练习的时候想做一个对几个复选框的全选、反选和全不选的控制。
本来以为是通过控制属性checked,但是查了资料发现属性checked不需要值,只要有这个属性就是表示选中状态,所以不能通过控制这个属性,然后angular有自己的指令ng-checked,这个属性为false时表示未选中,为true时为选中,所以可以通过这个属性来控制,代码如下:
html:
<section ng-controller="tab-test-controller">
<button ng-click="okClick()">全选</button>
<button ng-click="reverseClick()">反选</button>
<button ng-click="noClick()">全不选</button>
<hr>
<hr>
<div ng-repeat="inp in checkList">
{{inp.name}}: <input type="checkbox" ng-checked="inp.checked">
</div>
</section>
js:
$scope.checkList = [{
name:'呜呜',
checked:'false'
},{
name:'哇哇',
checked:'false'
},{
name:'嘻嘻',
checked:'false'
},{
name:'哈哈',
checked:'false'
}];
//全选
$scope.okClick = function(){
$scope.checkList.map(n => {
n.checked = true;
});
};
//全不选
$scope.noClick = function(){
$scope.checkList.map(n => {
n.checked = false;
});
};
//反选
$scope.reverseClick = function(){
$scope.checkList.map(n => {
n.checked = !n.checked;
});
}
也可以通过ng-model指令,只要将ng-checked改为ng-model就可以了。