use*_*143 5 javascript snackbar angular-material2 angular
我可以像这样设置小吃店消息的持续时间
let config = new MdSnackBarConfig();
config.duration = 5000;
this.snackBar.open(element.text, 'OK', config);
Run Code Online (Sandbox Code Playgroud)
但是,我需要为多个小吃店设置持续时间,而不必每次都传入配置。
我可以以某种方式设置全局持续时间配置吗?
谢谢!
我知道这篇文章是几年前的,但为了将来参考,我还是要回答这个问题。希望我能帮助像我一样遇到这篇文章的人。
您现在可以MatSnackBar通过使用提供程序为模块注入默认选项@NgModule:
import { MatSnackBarModule, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material';
@NgModule({
declarations: [],
imports: [
MatSnackBarModule
],
exports: [
MatSnackBarModule
],
providers: [
{ provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2500 } }
]
})
Run Code Online (Sandbox Code Playgroud)
我们所做的就是在模块级别包含一个外部app.config.ts文件,并将其包含在我们需要的地方。这是文件中内容的示例。
export class Config {
static apiUrl = "api/";
static token = "";
static snackBarDurration = 5000;
......
}
Run Code Online (Sandbox Code Playgroud)
然后,您所要做的就是在模块中声明它,然后将其导入到您想要使用它的组件或服务中。这是一个例子。
import { Injectable } from "@angular/core";
import { Config } from "../../app.config";
@Injectable()
export class SnackBarService {
.... // declare your snackbar here
constructor() { }
showSnackBar(elementText: string){
let config = new MdSnackBarConfig();
config.duration = Config.snackBarDurration; // Here is your change
this.snackBar.open(elementText, 'OK', config);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1519 次 |
| 最近记录: |