【问题标题】:Angular DataTables : Multiple data tables individual column filters are not workingAngular DataTables:多个数据表的单个列过滤器不起作用
【发布时间】:2020-12-12 16:39:11
【问题描述】:

使用 Angular 方式的 Angular DataTables,多个数据表过滤器不起作用,只有一个表起作用。

我有两个表和不同的 API 数据。我试图实现单个列过滤器。只有一个表在工作,第二个表无法进行过滤。任何建议请...

  ngAfterViewInit(): void {
    this.datatableElementList.forEach(datatableElement=>{
    this.dtTrigger1.subscribe(() => {
      this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {
        dtInstance.columns().every(function () {
          const that = this;
          $("input", this.footer()).on("keyup change", function () {
            if (that.search() !== this["value"]) {
              that.search(this["value"]).draw();
            }
          });
        });
      });
    });
    this.dtTrigger2.subscribe(() => {
      this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {
        dtInstance.columns().every(function () {
          const that = this;
          $("input", this.footer()).on("keyup change", function () {
            if (that.search() !== this["value"]) {
              that.search(this["value"]).draw();
            }
          });
        });
      });
    });
  });
  }

Stackblitz

【问题讨论】:

    标签: javascript jquery angular datatables angular-datatables


    【解决方案1】:

    我只快速查看您的代码,但如果您有多个表,则需要使用 ViewChildren(ViewChild 获取第一个表)。你需要在 ngAfterViewInit 中使用

    @ViewChildren(DataTableDirective) datatableElementList: QueryList<DataTableDirective>;
    ngAfterViewInit()
    {
       this.datatableElementList.forEach(datatableElement=>{
               ..your code with each "datatableElement"...
       })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多