Wenn anglejs ng-change verwendet, um Kontrollkästchen-Änderungsauslöserereignisse zu implementieren, verwendet es ng-checked, um die Auswahl zu implementieren, löst jedoch nicht das ng-change-Ereignis aus. Es kann nur ausgelöst werden, wenn es manuell angeklickt wird Wird ausgelöst, wenn das Kontrollkästchen in <td> direkt angeklickt wird. Wenn Sie auf das Kontrollkästchen in <td> klicken, um die Mehrfachauswahl im <td>-Kontrollkästchen zu implementieren, ist add() wie folgt
<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);
};
ngChange
如果你全选,直接处理data数据取出所有ID就可以了吧,不用调用add()去添加ID吧。
ngChange
Evaluate the given expression when the user changes the input. The expression is evaluated immediately, unlike the JavaScript onchange event which only triggers at the end of a change (usually, when the user leaves the form element or presses the return key).