Maison  >  Questions et réponses  >  le corps du texte

javascript - Dans AngularJS, si toutes les cases sont cochées sans clic manuel, ng-change ne sera pas déclenché?

Lorsque angulairejs utilise ng-change pour implémenter les événements déclencheurs de changement de case à cocher, il utilise ng-checked pour implémenter la sélection mais ne déclenche pas l'événement ng-change. Il ne peut être déclenché que lorsque vous cliquez manuellement. déclenché lorsque la case à cocher dans <td> est directement cliquée. add(), lorsque vous cliquez sur la case à cocher dans <th> pour implémenter la sélection multiple dans la case à cocher <td>, add() n'est pas valide
Le code est le suivant.

<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);
    };
迷茫迷茫2661 Il y a quelques jours685

répondre à tous(2)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-06-14 10:56:09

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

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-14 10:56:09

    ngChange
    Évaluez l'expression donnée lorsque l'utilisateur modifie l'entrée. L'expression est évaluée immédiatement, contrairement à l'événement JavaScript onchange qui ne se déclenche qu'à la fin d'une modification (généralement, lorsque l'utilisateur quitte l'élément de formulaire ou appuie sur la touche retour). clé).

    répondre
    0
  • Annulerrépondre