动态创建 Mat 对话框配置
Dynamically Creating Mat Dialog Config
我在 app.module.ts
中提供 MAT_DIALOG_DEFAULT_OPTIONS
来为 MatDialog
对话框创建全局默认值:
function matDialogProviderFactory() {
const matDialogConfig: MatDialogConfig = {/* presets */};
if (/* some condition */) {
matDialogConfig.panelClass = 'a-class';
}
return matDialogConfig;
}
@NgModule({
...,
providers: [
{
provide: MAT_DIALOG_DEFAULT_OPTIONS,
useFactory: matDialogProviderFactory,
}
],
})
我的目标是在每次创建对话框时评估 matDialogProviderFactory()
中的条件,以便我可以有条件地添加 class。但是,该函数在开始时仅 运行 一次。每次创建对话框时如何 运行 matDialogProviderFactory()
?或者,我还能如何实现我的目标?
如果您需要对模块进行特定配置,这是一个很好的方法,但如果每次创建对话框时都需要更多自定义配置,您可以创建一个工厂class 来生成具有特定配置的 Mat 对话框
我在 app.module.ts
中提供 MAT_DIALOG_DEFAULT_OPTIONS
来为 MatDialog
对话框创建全局默认值:
function matDialogProviderFactory() {
const matDialogConfig: MatDialogConfig = {/* presets */};
if (/* some condition */) {
matDialogConfig.panelClass = 'a-class';
}
return matDialogConfig;
}
@NgModule({
...,
providers: [
{
provide: MAT_DIALOG_DEFAULT_OPTIONS,
useFactory: matDialogProviderFactory,
}
],
})
我的目标是在每次创建对话框时评估 matDialogProviderFactory()
中的条件,以便我可以有条件地添加 class。但是,该函数在开始时仅 运行 一次。每次创建对话框时如何 运行 matDialogProviderFactory()
?或者,我还能如何实现我的目标?
如果您需要对模块进行特定配置,这是一个很好的方法,但如果每次创建对话框时都需要更多自定义配置,您可以创建一个工厂class 来生成具有特定配置的 Mat 对话框