web-dev-qa-db-ja.com

未定義のプロパティ「ngMetadataName」を読み取れません

Angular 6 with 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,
  }
});
16
Aslam

同じメッセージですが、マテリアルとは関係ありません。このエラーも発生しました。循環依存について警告があることに気付きました。このエラーは、依存関係を削除すると消えます。

コンパイルプロセス中の他の警告メッセージがこれを修正するのに役立ちます。

23
user3102108

CLIバージョン8.0.4でAngularをアップグレードしたときにこのエラーが発生しました。 @angular-devkit/build-angular 0.800.3およびAngular CLIをバージョン8.0.3にダウングレードする必要がありました。

npm i --save-dev @angular-devkit/[email protected] @angular/[email protected]
16

@ 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"
1
SiddAjmera

1つのファイルに2つのサービスがあるため、このエラーが発生しました。それらを別のファイルに移動すると、問題が解決しました。

0

Angular 7プロジェクトで同じ問題に直面していました。

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

User3102108が言及したように、問題は循環依存関係が検出されたためでした。確認するには、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
Sibeesh Venu