MatDialog错误:没有提供者为InjectionToken mat-dialog-scroll-strategy

Kro*_*san 7 angular-material2

包括提供者:Constructur中的MatDialog

      constructor(groupService: GroupService, public dialog: MatDialog) 
Run Code Online (Sandbox Code Playgroud)

我在运行时遇到以下错误

     Error: No provider for InjectionToken mat-dialog-scroll-strategy!
Run Code Online (Sandbox Code Playgroud)

我已将Matdialog包含在"app.module.ts"中我是否需要一个不同的提供商以及哪一个?我使用角度材料2.0.0b12

谢谢

小智 18

您需要在导入中包含MatDialog模块.

import {MatDialogModule} from '@angular/material';
@NgModule({
   imports :[MatDialogModule],
   ...
})
Run Code Online (Sandbox Code Playgroud)

  • 谢谢 :) 在 Module.ts 中,它的 MatDialogModule 不同于 MatDialog。这有点误导 (4认同)
  • 我在这个问题上挣扎了很多,似乎在我自己的组件所在的模块中导入这个模块不起作用,我必须在 app.module.ts 中导入它! (2认同)

Mar*_*rax 8

如果您尝试从服务中打开延迟加载模块的对话框,也会发生此错误@Injectable({providedIn: 'root'})

要修复它,您必须将该对话框移至主模块或删除providedIn符号并将其添加到providers: []延迟加载模块中。