Jquery 选中所有复选框不更改ng模型
我使用这个jquery来选中所有复选框,当单击时,所有复选框都将被勾选: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('
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');
}
}