MatDialog 在更新 Angular 到版本 9 后停止工作
MatDialog stopped working after updating Angular to version 9
我有一个 angular 项目,我在 https://update.angular.io/#7.2:9.0
之后从 7.2 升级到 9
Post 升级除 MatDialog 之外的所有内容。打开对话框会显示一个大小不成比例的空弹出窗口,并在控制台中显示以下错误。
core.js:3866 ERROR Error: Uncaught (in promise): TypeError: Cannot read property "hasAttached" of undefined
TypeError: Cannot read property "hasAttached" of undefined
at MatDialogContainer.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialogContainer.attachComponentPortal (dialog.es5.js:191)
at MatDialog.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialog._attachDialogContent (dialog.es5.js:1046)
at MatDialog.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialog.open (dialog.es5.js:850)
at new AppComponent (app.component.ts:67)
at createClass (core.js:22218)
at createDirectiveInstance (core.js:22087)
at createViewNodes (core.js:30632)
at createRootView (core.js:30546)
at callWithDebugContext (core.js:31554)
at Object.debugCreateRootView [as createRootView] (core.js:31064)
at resolvePromise (zone.js:836)
at resolvePromise (zone.js:795)
at zone.js:897
at ZoneDelegate.invokeTask (zone.js:431)
at Object.onInvokeTask (core.js:27441)
at ZoneDelegate.invokeTask (zone.js:430)
at Zone.runTask (zone.js:198)
at drainMicroTaskQueue (zone.js:611)
at ZoneTask.invokeTask [as invoke] (zone.js:517)
at invokeTask (zone.js:1671)
我已经通过本教程https://www.techiediaries.com/angular-material-dialogs/验证了使用带有自定义组件的对话框的方式是相同的。
由于工作政策,我无法提供实际代码。
我也尝试选择退出常春藤思考,如果它是问题的原因 this link。但是没有用。
你们有没有人也遇到过类似的问题?
问题已解决。我必须将 Angular Material CDK 升级到 9.1 并将所有导入引用更改为新格式:
import { MatDialogModule } from '@angular/material/dialog';
一切顺利!
我有一个 angular 项目,我在 https://update.angular.io/#7.2:9.0
之后从 7.2 升级到 9Post 升级除 MatDialog 之外的所有内容。打开对话框会显示一个大小不成比例的空弹出窗口,并在控制台中显示以下错误。
core.js:3866 ERROR Error: Uncaught (in promise): TypeError: Cannot read property "hasAttached" of undefined
TypeError: Cannot read property "hasAttached" of undefined
at MatDialogContainer.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialogContainer.attachComponentPortal (dialog.es5.js:191)
at MatDialog.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialog._attachDialogContent (dialog.es5.js:1046)
at MatDialog.push../node_modules/@angular/material/esm5/dialog.es5.js.MatDialog.open (dialog.es5.js:850)
at new AppComponent (app.component.ts:67)
at createClass (core.js:22218)
at createDirectiveInstance (core.js:22087)
at createViewNodes (core.js:30632)
at createRootView (core.js:30546)
at callWithDebugContext (core.js:31554)
at Object.debugCreateRootView [as createRootView] (core.js:31064)
at resolvePromise (zone.js:836)
at resolvePromise (zone.js:795)
at zone.js:897
at ZoneDelegate.invokeTask (zone.js:431)
at Object.onInvokeTask (core.js:27441)
at ZoneDelegate.invokeTask (zone.js:430)
at Zone.runTask (zone.js:198)
at drainMicroTaskQueue (zone.js:611)
at ZoneTask.invokeTask [as invoke] (zone.js:517)
at invokeTask (zone.js:1671)
我已经通过本教程https://www.techiediaries.com/angular-material-dialogs/验证了使用带有自定义组件的对话框的方式是相同的。 由于工作政策,我无法提供实际代码。
我也尝试选择退出常春藤思考,如果它是问题的原因 this link。但是没有用。
你们有没有人也遇到过类似的问题?
问题已解决。我必须将 Angular Material CDK 升级到 9.1 并将所有导入引用更改为新格式:
import { MatDialogModule } from '@angular/material/dialog';
一切顺利!