动态创建 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 对话框