angular - 如何在构造函数中选择性地注入(inject) MAT_DIALOG_DATA

我创建了一个名为 customer-edit.component.ts 的组件。有一个页面可以访问客户编辑页面。然而,在其他屏幕上,我希望编辑客户但没有路由到客户页面。所以我通过使用垫对话框来使用弹出窗口来实现这一点。弹出窗口没问题,但是当我尝试通过客户维护屏幕而不是弹出窗口访问屏幕时,我点击了这个

StaticInjectorError(AppModule)[CustomerEditComponent -> InjectionToken MatDialogData]: StaticInjectorError(Platform: core)[CustomerEditComponent -> InjectionToken MatDialogData]: NullInjectorError: No provider for InjectionToken MatDialogData!

我如何根据访问屏幕行为的方式选择性地在 customer-edit.component.ts 的构造函数中注入(inject) @Inject(MAT_DIALOG_DATA) public data: any 以防止此错误?

最佳答案

我还需要在组件提供程序中添加 MatDialogRef。本 answer 中提供了示例.

https://stackoverflow.com/questions/56371003/

相关文章:

git - 一个 git 子模块卡在错误的提交 ('submodule update' 不工作)

google-sheets - 具有日期条件的 Google 表格摘要

python - 无法编码响应 : datetime. datetime(2019, 5, 29,

google-chrome - 本地主机 Web 应用程序访问远程 API 时未设置 Cookie

c# - 从不同的项目 .Net 访问 protobuf

python-3.x - 如何在 Python 中创建具有每个变量值之间差距的堆积条形图

python - 是否可以在 Snakemake 中有一个可选的输出文件?

google-drive-api - 从 Google Drive "Computers"获取文件到

reactjs - 我们如何在使用 react 最终形式时在组件中设置状态

node.js - 在 Nexus 中获取最新版本的 Node 包