Rumah  >  Soal Jawab  >  teks badan

javascript - Dalam Angularjs, jika semua kotak pilihan dipilih tanpa klik manual, ng-change tidak akan dicetuskan?

Apabila angularjs menggunakan ng-change untuk melaksanakan peristiwa pencetus perubahan kotak, ia menggunakan ng-checked untuk melaksanakan pemilihan tetapi tidak mencetuskan peristiwa ng-change Ia hanya boleh dicetuskan apabila diklik secara manual dicetuskan apabila kotak pilihan dalam <td> diklik terus(), apabila mengklik kotak pilihan dalam <th> untuk melaksanakan pilihan berbilang dalam <td>kotak pilihan, add() adalah tidak sah.

<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 hari yang lalu684

membalas semua(2)saya akan balas

  • 我想大声告诉你

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

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

    balas
    0
  • 过去多啦不再A梦

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

    ngChange
    Nilai ungkapan yang diberikan apabila pengguna menukar input. Ungkapan dinilai serta-merta, tidak seperti peristiwa onchange JavaScript yang hanya mencetuskan pada penghujung perubahan (biasanya, apabila pengguna meninggalkan elemen borang atau menekan return kunci).

    balas
    0
  • Batalbalas