Поворот ленивой загрузки в ngSwitch - PullRequest
1 голос
/ 02 марта 2020

У меня есть этот код:

<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 и время работы. Я переключаюсь на эту вкладку и загружаю ее с самого начала. Как я могу здесь отключить отложенную загрузку, чтобы карта загружалась один раз?

1 Ответ

3 голосов
/ 02 марта 2020

Вы можете использовать директиву 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> при загрузке. , но при необходимости он будет скрыт.

DEMO: https://stackblitz.com/edit/angular-vfnzja

...