【问题标题】:Angular : Why does sort only work on first Mat Table?Angular:为什么排序只适用于第一个 Mat Table?
【发布时间】:2018-06-04 07:32:16
【问题描述】:

为什么在这里宣传排序功能:https://material.angular.io/components/table/overview#sorting

添加第二个表以显示数据的后半部分时失败? :

https://stackblitz.com/edit/angular-1vg9gn-q1back?file=app/table-basic-example.ts

我该如何解决?

【问题讨论】:

    标签: angular sorting angular-material2


    【解决方案1】:

    在您的代码中,您将MatSort 的实例分配给您的数据源。 sort 成员将是 Angular 可以在模板中找到的 MatSort 指令的第一个实例。

    @ViewChild(MatSort) sort: MatSort; //1st sort directive
    
    ngOnInit() {
      this.dataSource.sort = this.sort;
    }
    

    由于您在 2 个表之间共享数据源,因此只使用第一个。

    您不能在您想要执行排序、过滤等操作的表之间共享您的数据源..

    解决方案是每个表有一个数据源。

    【讨论】:

    • 谢谢这是一个很好的答案,真正解释了很多......这是我最不想听到的。从我听到的消息来看,如果我将数据源分成两个,那么排序将不再影响两个表。所以你是在告诉我 Angular 和 Material 想要在功能方面把它的用户搞砸?为什么?为什么我们不能固定列,它们只允许您通过两个表完成排序和过滤?现在我必须选择?这绝对是最糟糕的。
    【解决方案2】:

    Material 已经为粘性标题带来了自己的支持,理论上应该可以在发布后解决我的问题:https://github.com/angular/material2/pull/11483

    【讨论】:

      猜你喜欢
      • 2018-05-21
      • 2020-06-19
      • 2022-09-30
      • 2019-04-05
      • 1970-01-01
      • 2017-03-08
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多