Angular 2 Material MdSnackBar 没有提供者

Posted

技术标签:

【中文标题】Angular 2 Material MdSnackBar 没有提供者【英文标题】:Angular 2 Material MdSnackBar no Provider 【发布时间】:2018-01-09 06:07:13 【问题描述】:

我想要一个简单的 Snackbar 在单击按钮时弹出。但我总是得到错误:

错误错误:没有 MdSnackBar 的提供程序! 在 injectionError (core.es5.js:1169) 在 noProviderError (core.es5.js:1207

import MdSnackBar from '@angular/material';
constructor(public snackBar: MdSnackBar)
        this.snackBar.open('hello')
    

【问题讨论】:

您是否将MaterialModule 添加到您的import array 中? 你导入MdSnackBarModule了吗? 德国的清晨......谢谢大家 @Pengyy 请注意,从beta.3 开始,MaterialModule 已被弃用,强烈建议您创建自己的材质模块,如here 和here 所述。 @Edric 感谢您指出这一点,兄弟。 :-) 【参考方案1】:

Import MdSnackBarModule 然后在 app.module.ts 文件中的导入中添加 MdSnackBarModule

【讨论】:

请注意,如果您的版本高于“@angular/material”:“2.0.0-beta.11”,则不再支持此答案,【参考方案2】:

如果你有版本 "@angular/material": "2.0.0-beta.12" 或更高版本,你应该导入MatSnackBarModule

import MatSnackBarModule from '@angular/material';

// Use a more specific import if you're using "@angular/material": "8.0.0" and higher
// import MatSnackBarModule from '@angular/material/snack-bar';

...

@NgModule(
      imports: [
            ...
            MatSnackBarModule
          ],
    ...

【讨论】:

以上是关于Angular 2 Material MdSnackBar 没有提供者的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angular-cli 在 Angular 2 应用程序中安装 bootstrap-material-design

Angular 2.0 Material MdDialog 与 Angular 2.0 的工作示例

Angular 5 Angular Material 2 - 使用 minLength 自动完成

Angular Material 2 Textarea Autosize 属性 (mdTextareaAutosize)

尝试从 npm 安装 Angular 2 Material - 源文本中无法识别的标记

Angular 2 Material - 如何有条件地设置工具栏的颜色