Я пытаюсь переключаться между двумя компонентами в моем угловом приложении, моя цель состоит в том, чтобы, во-первых, когда страница все еще загружалась, предварительный загрузчик будет отображаться до тех пор, пока страницы не загрузятся полностью, тогда переменная предварительного загрузчика изменится сtrue to false, тогда второй компонент начнет отображаться.
Но когда я попробовал это, я получил эту ошибку
Ошибка: ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилось после того, как было проверено. Предыдущее значение: «скрыто: правда». Текущее значение: «скрыто: ложь». at viewDebugError
вот мой код для home.component.html
<app-preloader *ngIf="preloader; else Notpreloader"></app-preloader>
<ng-template #Notpreloader>
<div>
......
</div>
</ng-template>
вот код для home.component.ts
import { Component, OnInit, AfterViewInit, ChangeDetectorRef, AfterContentChecked } from '@angular/core';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit, AfterViewInit, AfterContentChecked {
constructor(private changeDetector: ChangeDetectorRef) { }
ngAfterContentChecked(): void {
this.changeDetector.detectChanges();
}
preloader=true
ngAfterViewInit() {
this.preloader=false
}
ngOnInit() {
}
}
как я могу избавиться от этой ошибки и заставить ее работать так, как я хочу, чтобы, когда страница закончила загрузку, она скрыла компоненты предварительного загрузчика и загрузила главную страницу этой страницы?