Jquery 无法使用Angular获取列值的动态和

Jquery 无法使用Angular获取列值的动态和,jquery,angular,Jquery,Angular,正在尝试获取当前页上的所有记录并动态计算金额。在下面的代码中尝试过,我可以选择记录,但找不到动态计数(单独选择getting count,但如果我们选择all,我将不获取计数)。请在这个问题上帮助我 checkuncheckall() { let chkBoxlength = $(".checkboxCls:checked").length; if (this.isChecked == true) { $(".checkboxCls&qu

正在尝试获取当前页上的所有记录并动态计算金额。在下面的代码中尝试过,我可以选择记录,但找不到动态计数(单独选择getting count,但如果我们选择all,我将不获取计数)。请在这个问题上帮助我

checkuncheckall() {
    let chkBoxlength = $(".checkboxCls:checked").length;
    if (this.isChecked == true) {
      $(".checkboxCls").prop("checked", false);
      this.isChecked = false;
    } else {
      $(".checkboxCls").prop("checked", true);
      this.isChecked = true;
    }
    this.checkboxCheckCount();
    
    // const totalChecked = this.persons.filter(f => f.checked).length;
    // const target = totalChecked !== this.persons.length;
    // this.persons.forEach(f => (f.checked = target));
    // this.cdRef.detectChanges();
}

我建议在这种情况下不要使用jquery。只需将您的
checkuncheckall
功能更改为:

checkuncheckall() {
  this.isChecked = !this.isChecked;
  this.persons.forEach(f => (f.checked = this.isChecked));
}

对您的check it Out进行了一些更改感谢@Bargos的回复,请帮助我是否有办法只获取当前(可见)页面的记录而不是所有页面记录您是指页面中当前可见的记录?我想说的是,按desc或asc顺序对数组进行排序(实际上不必这样,它仍然是前10条记录),您可以找出哪些记录正在显示,因为表是分页的,如果您知道哪一页以及每页显示的数量,那么您可以很容易地从数组中获取记录,例如,如果你按照asc顺序对它进行排序,并且你在第一个页面上,该页面只显示10条记录,那么你知道正在显示数组的0-9条记录,第2页->第10-19页,等等…给你的一些建议是,不要在Angular 2+中使用JQuery和来自第三方库的奇怪元素,使用,这样你以后就不会遇到这样的问题了。除非你真的必须使用第三方,否则不要使用第三方,这种情况很少发生。另外,我相信我在演示中解决了您的勾选/取消勾选问题。感谢@Cuong Le Ngoc的回复,请帮助我是否有任何方法仅获取当前(可见)页面的记录,而不是所有页面记录。我已经做了一些修改以解决此问题。请检查:非常感谢您的帮助,筛选方案不起作用,如果我们在文本框中进行筛选,如Toto、超人和应用全选,则只选择少数记录,其余记录未选择,数据未更新。使用console.log(this.persons.filter(f=>f.checked).map(m=>m.id).length);用于获取选中的复选框数。请选中此项:是,现在它也正在更新筛选器。非常感谢你,孔乐恩。