【发布时间】:2020-10-01 18:10:30
【问题描述】:
我有一个 mat-accordion 嵌套在另一个手风琴中,我想直接渲染父手风琴的内容,但延迟加载子手风琴。 Angular Material 通过将手风琴内容包装在使用 matExpansionPanelContent 指令注释的 ng 模板中来提供延迟加载。
我的代码如下所示:
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
Panel 1
</mat-expansion-panel-header>
<div class="panel-content">
Immediately loaded parent content
<mat-accordion displayMode="flat">
<mat-expansion-panel>
<mat-expansion-panel-header>
Panel 1A
</mat-expansion-panel-header>
<ng-template matExpansionPanelContent>
Lazy-loaded child content
</ng-template>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
Panel 1B
</mat-expansion-panel-header>
<ng-template matExpansionPanelContent>
Lazy-loaded child content
</ng-template>
</mat-expansion-panel>
</mat-accordion>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
Panel 2
</mat-expansion-panel-header>
<div class="panel-content">
Immediated loaded parent content
</div>
</mat-expansion-panel>
</mat-accordion>
相反,父手风琴和子手风琴拾取并渲染延迟加载的内容,因此它被渲染两次。
有没有办法将延迟加载的内容直接传递给面板,以便只有特定面板呈现内容?还是有更好的方法可以做到这一点?
【问题讨论】: