Не удается прочитать свойство 'ngMetadataName' из неопределенного - PullRequest
0 голосов
/ 27 августа 2018

Я использую Angular 6 с Angular Material. После обновления до последней версии консоль выдает эту ошибку в разработке. На производстве работает

Cannot read property 'ngMetadataName' of undefined

Это происходит, когда я пытаюсь открыть диалог материалов через службу (без службы они работают нормально). Я думаю, что это связано с инъекционными препаратами, но я не уверен.

Версии: cli: 6.1.5, ядро: 6.1.4, материал: 6.4.6

Вот стек журналов:

CustomDialogComponent_Host.ngfactory.js? [sm]:1 ERROR TypeError: Cannot read property 'ngMetadataName' of undefined
at injectArgs (core.js:1418)
at core.js:1491
at _callFactory (core.js:8438)
at _createProviderInstance (core.js:8396)
at resolveNgModuleDep (core.js:8371)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:9064)
at PortalInjector.push../node_modules/@angular/cdk/esm5/portal.es5.js.PortalInjector.get (portal.es5.js:732)
at resolveDep (core.js:9419)
at createClass (core.js:9309)
at createDirectiveInstance (core.js:9186)

Любая помощь будет оценена.

диалог внутри службы, в котором выдается ошибка:

 @Injectable({
  providedIn: 'root'
})
export class customService {
  constructor(private store: Store<RootState>, private dialog: MatDialog) {}

const dialogRef = this.dialog.open(customDialogComponent, {
  width: '300px',
  data: {
    loading: false,
    customId,
  }
});

Ответы [ 4 ]

0 голосов
/ 25 июня 2019

Я столкнулся с этой ошибкой при обновлении Angular до версии CLI 8.0.4. Мне пришлось понизить до @angular-devkit/build-angular 0.800.3 и Angular CLI до версии 8.0.3.

npm i --save-dev @angular-devkit/build-angular@0.800.3 @angular/cli@8.0.3
0 голосов
/ 17 сентября 2018

То же сообщение, но не имеет отношения к материалу, у меня тоже была эта ошибка. Я понял, есть предупреждение о круговой зависимости. Эта ошибка исчезает после удаления зависимостей.

Возможно, другие предупреждающие сообщения во время процесса компиляции помогут это исправить.

0 голосов
/ 29 апреля 2019

Я столкнулся с той же проблемой в моем проекте Angular 7.

constructor(private worksheetHandler: WorksheetPayloadHandler,
    private worksheetRepository: WorksheetRepository) { }

Как упомянул пользователь3102108, проблема заключалась в том, что была обнаружена циклическая зависимость. Для подтверждения вы можете запустить ng build и проверить предупреждения в терминале. Я получал предупреждение, как показано ниже.

WARNING in Circular dependency detected:
src\modules\service\services\worksheets\worksheet.events.service.ts -> src\modules\service\services\worksheets\worksheet.repository.ts -> src\modules\service\services\worksheets\worksheet.events.service.ts

WARNING in Circular dependency detected:
src\modules\service\services\worksheets\worksheet.repository.ts -> src\modules\service\services\worksheets\worksheet.events.service.ts -> src\modules\service\services\worksheets\worksheet.repository.ts

После удаления циклической зависимости проблема была решена.

0 голосов
/ 27 августа 2018

Попробуйте понизить @ angular / core до 6.0.0

Вот пример проекта StackBlitz , чтобы помочь вам с версиями различных пакетов. Существует много проблем с несоответствием версий, из-за которых возникают эти ошибки.

Вот несколько других конфигов, которые нужно учитывать, которые хорошо работают друг с другом:

    "@angular/animations": "6.0.5",
    "@angular/common": "6.0.0",
    "@angular/compiler": "6.0.0",
    "@angular/core": "6.0.0",
    "@angular/cdk": "6.4.6",
    "@angular/material": "6.4.6"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...