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'"