使用动态列排序 - 角度材料

Posted

技术标签:

【中文标题】使用动态列排序 - 角度材料【英文标题】:Sorting with dynamic column - Angular material 【发布时间】:2019-03-16 13:32:32 【问题描述】:

我正在使用这个URL 并且正在排序。排序工作正常,但我有 2 个数字列

    Weight - 它的值通过 API 调用来自 DB,并且存在于 dataSource 中。 (这里,排序工作) 双倍重量:其公式为:重量 * 2。 此处,“双倍权重” 是在 html 中动态计算的,因此在数据源中不可用。

我需要在 “双倍权重” 列中应用排序。有人可以指导我吗?

HTML

权重

element.weight

容器>

权重

element.weight * 2

容器>

TS

@ViewChild(MatSort) sort: MatSort;
ngOnInit() 
this.dataSource.sort = this.sort;

【问题讨论】:

好吧,不管这不是 UX 目的,因为它只是重量的两倍……你可以按重量排序,它仍然会被正确排序。我的意思是点击双重重量可以在引擎盖下按重量排序,因为结果会很好,weight 是你所拥有的价值。 请告诉我需要在哪里更改代码。 【参考方案1】:

我很确定在 (weight * 2) 上排序将得到与 weight 排序完全相同的结果。

因此,当您在两列中显示不同的值时,只需在两种情况下按重量排序即可。

【讨论】:

以上是关于使用动态列排序 - 角度材料的主要内容,如果未能解决你的问题,请参考以下文章

如何在角度 4 材料排序中对日期/时间列进行排序?

使用角度数据表动态更改列

如何通过传递对象使用 [ngstyle] 将网格行和网格列动态传递到角度 div 选项卡

在角度控制器中动态创建剑道网格列

使用动态列的 JavaScript 数组排序 [重复]

根据列中的值按列动态排序