Jquery 选中所有复选框不更改ng模型

Jquery 选中所有复选框不更改ng模型,jquery,angular,checkbox,Jquery,Angular,Checkbox,我使用这个jquery来选中所有复选框,当单击时,所有复选框都将被勾选: function checkAll(e) { var check = $(e).is(':checked'); if (check) { $('[name="row_Checkbox"]:not(:checked)').trigger('click'); } else { $('[name="row_Checkbox"]:checked').trigger('

我使用这个jquery来选中所有复选框,当单击时,所有复选框都将被勾选:

function checkAll(e) {
    var check = $(e).is(':checked');
    if (check) {
        $('[name="row_Checkbox"]:not(:checked)').trigger('click');
    }
    else {
        $('[name="row_Checkbox"]:checked').trigger('click');
    }
}
但它有一个问题,我设置了ng点击的角度函数,根据某些条件改变ng模型,如果选中的复选框超过一个数字,ng模型将变为空,当我单独单击复选框时,它是有效的,但当我使用复选框时,ng模型不会变为null并且仍然有一个值

我尝试了各种解决方案,但其中任何一种都有相同的结果

出什么问题了?

考虑这个答案: 您可以分派事件来处理角度循环

$('a').dispatchEvent(new MouseEvent('click', {
  'view': window,
  'bubbles': true,
  'cancelable': true
}));
就这样做吧


关于这个线程的其他答案可能更有用

这是另一种处理它的方法,而不是合并jquery和angular,只需使用angular即可

下面的代码将使用对象中的一个字段来管理HTML中的模型状态,如下所示

比如说

var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.name='World';
$scope.items=[
{name:'Field one',选中:false},
{name:'Field two',选中:true},
{name:'Field third',checked:false},
{name:'字段4',选中:true}
];
$scope.checkall=false;
$scope.toggleAll=函数(选中){
angular.forEach($scope.items,function(item){
item.checked=已检查
});
}
//倾听其他人是否被点击
$scope.checkboxClicked=函数(项、值){
如果(值===false){
$scope.checkall=false
}否则{
$scope.checkall=true
//检查其他项,查看是否需要将“检查全部为真”
angular.forEach($scope.items,function(x){
if(x.checked!==true&&x.name!==item.name){
$scope.checkall=false
}
});
}
}
}); 

你好{{name}}

全部检查--{{checkall}
  • {{item.name}--{{item.checked}
function checkAll(e) {
    var check = $(e).is(':checked');
    if (check) {
        $('[name="row_Checkbox"]:not(:checked)').trigger('click');
        $('[name="row_Checkbox"]:not(:checked)').trigger('change');
        $('[name="row_Checkbox"]:not(:checked)').trigger('input'); 
    }
    else {
        $('[name="row_Checkbox"]:checked').trigger('click');
        $('[name="row_Checkbox"]:checked').trigger('change');
        $('[name="row_Checkbox"]:checked').trigger('input'); 
    }

}