MatDialog перестал работать после обновления Angular до версии 9 - PullRequest
0 голосов
/ 27 февраля 2020

У меня был проект angular, который я обновил с 7.2 до 9 после https://update.angular.io/#7 .2: 9.0

После обновления работает все, кроме 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/, что способ использования диалога с пользовательским компонентом такой же. Я не могу предоставить реальный код из-за политики работы.

Я также пытался отказаться от мыслей Айви, если это было причиной проблемы, согласно этой ссылке . Но это не помогло.

Кто-нибудь из вас тоже сталкивался с подобной проблемой?

1 Ответ

0 голосов
/ 28 февраля 2020

Проблема решена. Мне пришлось обновить Angular Материал CDK до 9.1 и изменить все ссылки на импорт на новый формат:

import { MatDialogModule } from '@angular/material/dialog';

Все хорошо сейчас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...