javascript - Angularjs中checkbox全選不手動點就不觸發ng-change?
迷茫
迷茫 2017-06-14 10:54:09
0
2
679

angularjs使用ng-change實現checkbox變化觸發事件時,利用ng-checked實現選中卻不觸發ng-change事件,只有手動點擊時才能觸發,大致意思就是只有直接點<td>中的checkbox時才能觸發add(),當點選<th>中的checkbox實作<td>checkbox多選時add()無效
程式碼如下

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

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

全部回覆(2)
我想大声告诉你

ngChange
如果你全選,直接處理data資料取出所有ID就可以了吧,不用呼叫add()去新增ID吧。

过去多啦不再A梦

ngChange
當使用者更改輸入時評估給定的表達式。 此表達式會立即評估,這與僅在變更結束時觸發的 JavaScript onchange 事件不同(通常是當使用者離開表單元素或按回車鍵時)關鍵).

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!