javascript - Wenn in AngularJS alle Kontrollkästchen ohne manuelles Klicken aktiviert sind, wird NG-Change nicht ausgelöst?
迷茫
迷茫 2017-06-14 10:54:09
0
2
765

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);
    };
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(2)
我想大声告诉你

ngChange
如果你全选,直接处理data数据取出所有ID就可以了吧,不用调用add()去添加ID吧。

过去多啦不再A梦

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).

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage