小编Sat*_*ngh的帖子

在材质对话框中重用现有的 Angular 组件

我有一个现有的组件ResultGridComponent,它通过@Input(). 我想为MatDialog. 因此我@Inject(MAT_DIALOG_DATA) dataResultGridComponent组件的构造函数中添加了。

constructor(private spinner: EdpLoaderService, private dialog: MatDialog, @Optional() @Inject(MAT_DIALOG_DATA) data) {}
Run Code Online (Sandbox Code Playgroud)

但是当组件按照它的常规用法而不是作为对话框被调用时,我收到以下错误:

错误错误:StaticInjectorError(AppModule)[ResultGridComponent -> InjectionToken MatDialogData]:StaticInjectorError(Platform: core)[ResultGridComponent -> InjectionToken MatDialogData]:NullInjectorError:InjectionToken MatDialogData 没有提供者!

我很确定我已经导入了所有需要的模块。因为我为对话框创建了一个单独的组件并将数据传递给它并且它工作正常。但我想重用该组件。而且我很确定当我将子组件的构造函数调用为常规组件并且构造函数没有得到MatDialogData调用者传递给它的时候,这个错误就会发生。

dialog angular-material angular

3
推荐指数
2
解决办法
1364
查看次数

标签 统计

angular ×1

angular-material ×1

dialog ×1