我正在使用 Angular Material 和 Angular 6, ngOnInit 如果条件正确,我就必须显示内容。
我有对话框模块,用于显示对话框
if (!this.checkforRestriction()) {
this.loadContent(this.ReferenceID);
} else {
this.dialogService.okmessage('', dialogMessage);
}
我收到了这个错误。
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'id: undefined'. Current value: 'id: mat-dialog-0'. It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?
at viewDebugError (core.js:8445)
请指出哪里出了问题?
Angular 组件 ExpressionChangedAfterItHasBeenCheckedError 中的 Mat 对话框错误
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!
就我而言,我将对话框作为 RxJS“管道”的一部分打开,并 delay(0) 在 http get 之后添加“setTimeout”。
例如。
const result = this.http.get(...).pipe(
delay(0),
switchMap(response => {
if (response.hasOverdueLibraryBook) {
return this.dialogManager.openOverdueLibraryBookDialog(); // this is a mat-dialog
}
else
{
return of(false);
}
});