javascript - Angularjs中checkbox全选不手动点就不触发ng-change?
迷茫
迷茫 2017-06-14 10:54:09
[JavaScript讨论组]

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号