Angular 如何默认展开物料表中的所有行?

Angular 如何默认展开物料表中的所有行?,angular,angular-material,Angular,Angular Material,我正在使用物料表实现可扩展行。出于同样的原因,我遵循了以下参考 我想在默认情况下展开所有行。但我不确定如何才能做到这一点 任何建议都会有很大的帮助。请检查此项如果您想保持相同的逻辑,一次只可折叠一行,但所有行都以展开的形式开始,您只需更改即可 [@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'" 到 如果您想要一个具有可展开/可折叠元素的全功能表,可以将名为“已展开的”的新

我正在使用
物料表
实现可扩展行。出于同样的原因,我遵循了以下参考

我想在默认情况下展开所有行。但我不确定如何才能做到这一点


任何建议都会有很大的帮助。

请检查此项

如果您想保持相同的逻辑,一次只可折叠一行,但所有行都以展开的形式开始,您只需更改即可

[@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'"

如果您想要一个具有可展开/可折叠元素的全功能表,可以将名为“已展开的”的新属性添加到元素界面:

export interface Element {
  name: string;
  position: number;
  weight: number;
  symbol: string;
  expanded: boolean;
}
然后,您可以将默认值true添加到数据源中的新属性:

const data: Element[] = [
  { position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H', expanded: true },
  { position: 2, name: 'Helium', weight: 4.0026, symbol: 'He', expanded: true  }
 ...
];
最后,更改行逻辑以使用扩展的属性而不是所选元素:

更改:

[class.expanded]="expandedElement == row"
(click)="expandedElement = row"
...
[@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'"
致:

别忘了清除未使用的代码

[@detailExpand]=“row.element==expandedElement | | | true?”“expanded”:“collapsed”
成功了
[class.expanded]="expandedElement == row"
(click)="expandedElement = row"
...
[@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'"
[class.expanded]="row.expanded"
(click)="row.expanded = !row.expanded"
...
[@detailExpand]="row.element.expanded ? 'expanded' : 'collapsed'"