![](/img/trans.png)
[英]ExpressionChangedAfterItHasBeenCheckedError on ngOnInit with Promise
[英]ExpressionChangedAfterItHasBeenCheckedError in ngOnInit
每次發出HTTP請求時,我都有HTTP攔截器打開加載欄:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const dataStorageService = this.injector.get(DataStorageService);
dataStorageService.openProgressbar.next(true);
return next
.handle(req)
.do(evt => {
if (evt instanceof HttpResponse) {
dataStorageService.openProgressbar.next(false);
}
})
.catch(err => {
return Observable.throw(err);
});
}
然后在我的data-storage-service
,有一個主題:
openProgressbar = new Subject<boolean>();
然后在我的應用程序組件中放置了加載欄,並在其中進行監聽:
ngOnInit() {
this.dataStorageService.openProgressbar.subscribe(czyOtworzyc => {
this.alertMessageNavbarStatus = true;
});
}
但是正在顯示ExpressionChangedAfterItHasBeenCheckedError
。 我一直在尋找使用ngAfterContentChecked的解決方案,但對我而言不起作用。 有人可以幫我嗎?
將ChangeDetectorRef
注入組件
import { ChangeDetectorRef } from '@angular/core';
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
手動運行變更檢測
ngOnInit() {
...
this._changeDetectorRef.detectChanges();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.