Angular Material Snackbar 全局配置

cel*_*ade 7 angular-material angular angular5 angular-material-5

我正在按照 Angular Material github 上的指南设置自定义全局配置以在小吃店模块上使用。这是我遵循指南

然而,由于在文档最高审计机关,没有出口的MAT_SNACK_BAR_DEFAULT_OPTIONS唯一MAT_SNACK_BAR_DATA,但它不是重写默认配置。

这是我尝试过的:

import { MatSnackBarModule, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';

providers: [
    { provide: MAT_SNACK_BAR_DATA, useValue: { duration: 2500 } }
]
Run Code Online (Sandbox Code Playgroud)

我也试过这样:

{ provide: MatSnackBarConfig, useValue: { duration: 2500 } }
{ provide: MatSnackBarConfig, useClass: SnackClass }
Run Code Online (Sandbox Code Playgroud)

但没有一个选项有效。小吃在指定时间后永远不会自动关闭。

Man*_*kar 5

import { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';

providers: [
  {provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: {duration: 2500}}
]
Run Code Online (Sandbox Code Playgroud)


小智 3

我相信你把这里的东西搞砸了

您应该在此处更改持续时间:

@NgModule({
  providers: [
    {provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: {duration: 2500}}
  ]
})
Run Code Online (Sandbox Code Playgroud)

并且您必须在构造函数中注入 MAT_SNACK_BAR_DATA:

import {MAT_SNACK_BAR_DATA} from '@angular/material';

constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }
Run Code Online (Sandbox Code Playgroud)

  • 将“MAT_SNACK_BAR_DATA”导入到小吃栏不是必须的,除非它是自定义小吃栏组件并且您是否想要向自定义小吃栏组件提供任何数据。 (2认同)