angularjs使用ng-change實(shí)現(xiàn)checkbox變化觸發(fā)事件時(shí),利用ng-checked實(shí)現(xiàn)選中卻不觸發(fā)ng-change事件,只有手動(dòng)點(diǎn)擊時(shí)才能觸發(fā),大致意思就是只有直接點(diǎn)<td>中的checkbox時(shí)才能觸發(fā)add(),當(dāng)點(diǎn)擊<th>中的checkbox實(shí)現(xiàn)<td>checkbox多選時(shí)add()無(wú)效
代碼如下
<tr>
<th><input type="checkbox" ng-model="isChecked"></th>
</tr>
<tr ng-repeat="item in data track by $index">
<td><input type="checkbox" ng-checked="isChecked" ng-model="item.isChecked" ng-change="add(item.isChecked,item.uid)"></td>
</tr>
var uid_list = [];
$scope.add = function (item_checked,uid) {
var uid = parseInt(uid);
if(item_checked){
uid_list.push(uid);
}
if(!item_checked){
var index = uid_list.indexOf(uid);
uid_list.splice(index,1);
}
console.log(uid_list);
};
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
ng改變如果你全選,直接處理data數(shù)據(jù)取出所有ID就可以了吧,不用調(diào)用add()去添加ID吧。
ngChange
當(dāng)用戶更改輸入時(shí)評(píng)估給定的表達(dá)式。 該表達(dá)式會(huì)立即評(píng)估,這與僅在更改結(jié)束時(shí)觸發(fā)的 JavaScript onchange 事件不同(通常是當(dāng)用戶離開(kāi)表單元素或按回車(chē)鍵時(shí))關(guān)鍵).