gpt4 book ai didi

angular - Angular Material 中带有嵌套对象的默认排序

转载 作者:行者123 更新时间:2023-12-05 03:57:54 25 4
gpt4 key购买 nike

我使用带排序的 mat 表,我想在其中对特定列设置默认排序。

这适用于普通属性但不适用于嵌套属性。

这是我的 table

<table mat-table [dataSource]="dataSource" multiTemplateDataRows 
matSort matSortActive="break" matSortDirection="asc"
class="mat-elevation-z4 w-100">

我的嵌套排序

this.dataSource.sort = this.sort;
this.dataSource.sortingDataAccessor = (item, property) => {
switch(property) {
case 'break': return item.break.start;
default: return item[property];
}
};

此外,这种嵌套排序很好,当您手动单击标题进行排序时,它会按照我的预期进行,但默认情况下它不会排序,只显示排序箭头。

这就是它在页面加载时的样子:

这里是对应的stackblitz .

最佳答案

我在 5 月份研究时,初始排序无法正常工作。

在我的例子中,有必要编写我自己的 setSortHeader 函数,该函数在获取数据后执行。

setSortHeader() {
this.sort.active = 'break';
this.sort.direction = 'desc';
this.sort.sortChange.emit({ active: this.sort.active, direction: this.sort.direction });

const sortHeader = this.sort.sortables.get('break');
if (sortHeader) sortHeader['_setAnimationTransitionState']({ toState: 'active' });
}

我不确定此代码是否仍然必要,但在我的情况下有效。

关于angular - Angular Material 中带有嵌套对象的默认排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58322447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com