在 ngSwitch 中关闭延迟加载
Turn of lazy loading in ngSwitch
我有这个代码:
<ng-container [ngSwitch]="currentTab">
<div [@ngSwitch]="'show'" *ngSwitchCase="1"><app-sub-search></app-sub-search></div>
<div [@ngSwitch]="'show'" *ngSwitchCase="2"><app-filters></app-filters></div>
<div [@ngSwitch]="'show'" *ngSwitchCase="3"><app-map></app-map></div>
</ng-container>
app-map
包含 google 地图,每次我切换到此选项卡时都会从 beginig 加载它。我怎么能在这里关闭延迟加载,那张地图将被加载一次?
您可以在要预先加载的组件上使用 hidden
指令而不是 *ngSwitchCase
。
<ng-container [ngSwitch]="currentTab">
<div *ngSwitchCase="1"><app-sub-search></app-sub-search></div>
<div *ngSwitchCase="2"><app-filters></app-filters></div>
<div [hidden]="currentTab !== 3"><app-map></app-map></div>
</ng-container>
使用 hidden
将允许在加载时创建 <app-map>
的实例,但会在需要时将其隐藏。
我有这个代码:
<ng-container [ngSwitch]="currentTab">
<div [@ngSwitch]="'show'" *ngSwitchCase="1"><app-sub-search></app-sub-search></div>
<div [@ngSwitch]="'show'" *ngSwitchCase="2"><app-filters></app-filters></div>
<div [@ngSwitch]="'show'" *ngSwitchCase="3"><app-map></app-map></div>
</ng-container>
app-map
包含 google 地图,每次我切换到此选项卡时都会从 beginig 加载它。我怎么能在这里关闭延迟加载,那张地图将被加载一次?
您可以在要预先加载的组件上使用 hidden
指令而不是 *ngSwitchCase
。
<ng-container [ngSwitch]="currentTab">
<div *ngSwitchCase="1"><app-sub-search></app-sub-search></div>
<div *ngSwitchCase="2"><app-filters></app-filters></div>
<div [hidden]="currentTab !== 3"><app-map></app-map></div>
</ng-container>
使用 hidden
将允许在加载时创建 <app-map>
的实例,但会在需要时将其隐藏。