這段時間在學習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就可以了。