Компоненты
Angular не могут быть обработаны отдельно внутри файла index. html. Вот почему по умолчанию AppComponent загружается через файл main.ts.
Вы должны включить mat-spinner внутри Angular Component. Если счетчик предназначен для отображения при ускорении приложения, вы должны использовать настраиваемый счетчик, который затем можно включить в индекс. html:
<app-root><div id="spinner"></div></app-root>
Для отображения счетчика при ленивой загрузке модуля на маршрутизации, вы можете прослушивать router.events
в компоненте, содержащем <router-outlet>
:
loading: boolean;
constructor(private router: Router) {
router.events.subscribe(event => {
if (event instanceof NavigationStart) {
this.loading = true;
}
if (event instanceof NavigationEnd || event instanceof NavigationError || event instanceof NavigationCancel) {
this.loading = false;
}
});
}
и отображать условно свой счетчик:
<mat-spinner *ngIf="loading"></mat-spinner>
вот пример stackblitz (но счетчик не отображается, так как модули загружаются слишком быстро): https://stackblitz.com/edit/angular-ivy-xwd2ta?file=src%2Fapp%2Fapp.component.ts