NullInjectorError: No provider for x

NullInjectorError: No provider for x

在此之前 component 被加载到 MatDialog 但现在要求是将其加载到某些 url 即 http://localhost:4200/some-url 并且当我通过 url 并出现错误

NullInjectorError: No provider for x!

这是我要在 url 上加载的组件。

export class MyComponent {
  
  constructor(
    public dialogRef: MatDialogRef<MyComponent>,
    private fb: FormBuilder,
    @Optional() @Inject(MAT_DIALOG_DATA) public data: any
  ) { }

}

在注册此组件的模块中的导入数组中包含 MatDialogModule。

我的组件具有 MatDialog 负责接收数据的相关对象,即 @Optional() @Inject(MAT_DIALOG_DATA) public data: any

后来,随着需求的变化,我不得不在某些 url 上加载这个组件,而不是在对话框上加载。只需删除对话框相关数据即可。

export class MyComponent {
  
  constructor(private fb: FormBuilder) { }

}