javascript - Angularjs中checkbox全选不手动点就不触发ng-change?
迷茫
迷茫 2017-06-14 10:54:09
0
2
730

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)
我想大声告诉你

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

过去多啦不再A梦

ngChange
当用户更改输入时评估给定的表达式。 该表达式会立即评估,这与仅在更改结束时触发的 JavaScript onchange 事件不同(通常是当用户离开表单元素或按回车键时)关键).

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!