Angular Ngonit中的ExpressionChangedTerithasBeenCheckedError
我让我的HTTP拦截器在每次发出HTTP请求时打开加载栏:Angular Ngonit中的ExpressionChangedTerithasBeenCheckedError,angular,Angular,我让我的HTTP拦截器在每次发出HTTP请求时打开加载栏: intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { const dataStorageService = this.injector.get(DataStorageService); dataStorageService.openProgressbar.next(true);
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);
});
}
我在我的应用程序组件中收听它,我在其中放置了加载栏:
ngOnInit() {
this.dataStorageService.openProgressbar.subscribe(czyOtworzyc => {
this.alertMessageNavbarStatus = true;
});
}
但是将显示表达式ChangedTerithasBeenCheckedError
。
我一直在寻找使用ngAfterContentChecked的解决方案,但它对我不起作用。有人能帮我吗?注入组件
import { ChangeDetectorRef } from '@angular/core';
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
手动运行更改检测
ngOnInit() {
...
this._changeDetectorRef.detectChanges();
}
注入组件中
import { ChangeDetectorRef } from '@angular/core';
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
手动运行更改检测
ngOnInit() {
...
this._changeDetectorRef.detectChanges();
}
手动使用detectchanges手动使用detectchanges手动我添加了此项。_changeDetectorRef.detectchanges();结束我的ngoninit但仍然得到错误OK我发现了:ngAfterContentChecked(){this.\u changedtectorref.detectChanges();}我添加了这个。_changedtectorref.detectChanges();结束我的ngoninit但仍然得到错误OK我发现了:ngAfterContentChecked(){this.\u changeDetectorRef.detectChanges();}