Angular 角垫选项卡延迟加载并在选项卡之间保留数据
我使用角材料垫选项卡,每个选项卡都有动态形式的内容 我正在尝试使用延迟加载方法,以避免在开始时加载所有选项卡内容,并且只加载每个选项卡,以提高性能,特别是在Internet Explore中 我面临的问题是,每次我更改它时,它都会重新加载选项卡,并丢失我输入的数据 有没有关于如何在这里使用懒散的建议Angular 角垫选项卡延迟加载并在选项卡之间保留数据,angular,angular-material,internet-explorer-11,angular7,lazy-loading,Angular,Angular Material,Internet Explorer 11,Angular7,Lazy Loading,我使用角材料垫选项卡,每个选项卡都有动态形式的内容 我正在尝试使用延迟加载方法,以避免在开始时加载所有选项卡内容,并且只加载每个选项卡,以提高性能,特别是在Internet Explore中 我面临的问题是,每次我更改它时,它都会重新加载选项卡,并丢失我输入的数据 有没有关于如何在这里使用懒散的建议 <mat-tab-group [(selectedIndex)]="selectedTab" (selectedIndexChange)="tabChange($event)"&g
<mat-tab-group [(selectedIndex)]="selectedTab"
(selectedIndexChange)="tabChange($event)">
<mat-tab #tab *ngFor="let page of dataset; let tabIndex =
index; trackBy: tabIndex;" [label]="page.title">
<ng-container *ngFor="let section of
page.groupedSections">
//I am loosing the data here if i do lazy-loading
<dynamic-form [fields]="section.fields"></dynamic-form>
</ng-container>
</mat-tab>
</mat-tab-group>
//如果我延迟加载,我将丢失这里的数据
如果您有已知数量的选项卡及其名称,则可以创建一个对象,其中选项卡名称为键和空值。然后遍历模板中该对象的键列表。然后,当用户第一次单击任何选项卡时,它将加载数据,并将其存储在全局对象中的正确键中。然后,只需从该对象读取数据,而无需再次请求。不幸的是,我不知道选项卡是动态的!不管怎样,你总会得到标签列表,所以当你得到标签时,把这个对象填满。并使用一些选项卡id作为每个选项卡的键,或者如果没有任何id,则使用索引。从about angular material lazy loading可以看出,选项卡内容可以通过使用matTabContent属性在ng模板中声明主体来延迟加载。您还可以参考和中提供的方法。