MAT_DIALOG_DATA 注入失败,已导入MatDialogModule,

来源:2-10 对话框的使用

风_863495732

2018-08-29

 NullInjectorError: No provider for InjectionToken MatDialogData!

    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:1062)


写回答

3回答

接灰的电子产品

2018-08-29

在使用了 dialog 的模块中要导入 sharedmodule

0
0

风_863495732

提问者

2018-08-29

我写了一个dialog属性的组件selectComponent,它在shared module的declarations和entryComponents中已注入,从登录页跳转到home 页,(home页中使用了selectComponent)报错;我把“(

private dialogRef: MatDialogRef<SelectComponent>,

@Inject(MAT_DIALOG_DATA) private source

)”这段代码注释掉,重新运行,成功;然后我再把注释去掉,刷新当前路径(/project/home)运行也成功,对话框和home之间页能相互传值了,我再试着从登录页跳转到首页,就报错;您看看有什么解决问题的思路或办法?谢谢!

错误:

ERROR Error: StaticInjectorError(AppModule)[MatDialogClose -> MatDialogRef]: 

  StaticInjectorError(Platform: core)[MatDialogClose -> MatDialogRef]: 

    NullInjectorError: No provider for MatDialogRef!

    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:1062)

    at resolveToken (core.js:1300)

    at tryResolveToken (core.js:1244)

    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)

    at resolveToken (core.js:1300)

    at tryResolveToken (core.js:1244)

    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:1141)

    at resolveNgModuleDep (core.js:8376)

    at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:9064)

    at resolveNgModuleDep (core.js:8376)


0
0

接灰的电子产品

2018-08-29

你不会是在 shared module 导入,但在功能模块中没有导入 sharedmodule 吧

0
0

Angular打造企业级协作平台,让你在Angular领域中出类拔萃

全网首个介绍官方 Material 组件库用法与 Redux 在 Angular 中的应用

998 学习 · 536 问题

查看课程