如何实现 MAT_DIALOG_DEFAULT_OPTIONS?

Bus*_*pie 12 angular-material2 angular

在一个项目中,我们有多个 Dialog。现在,我想为 DialogOption 设置相同的全局变量。

我发现:https : //material.angular.io/components/dialog/overview 和这段代码:

@NgModule({
  providers: [
    {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}}
  ]
})
Run Code Online (Sandbox Code Playgroud)

我将这些代码与其他代码一起应用,但它不起作用。根本不应用这些设置。

有人让这些设置工作吗?

Ale*_*x K 16

角材料提供了它的一些配置选项实用默认值,比如closeOnNavigationautoFocus

如果您只想覆盖一些配置项,而将其余配置项保留为默认值,您可以MAT_DIALOG_DEFAULT_OPTIONS像这样提供:


import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig} from '@angular/material';

...

  providers: [
    {
      provide: MAT_DIALOG_DEFAULT_OPTIONS,
      useValue: {
        ...new MatDialogConfig(),
        hasBackdrop: false,
      } as MatDialogConfig,
    }
  ]

...

Run Code Online (Sandbox Code Playgroud)

使用这种方法,您只需指定要更改的配置选项。其余的将采用它们的默认值。


Far*_*tab 9

这有效......去这里并添加这些以验证它。

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

....

providers: [
  {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}}
]
Run Code Online (Sandbox Code Playgroud)

  • 链接中没有“MAT_DIALOG_DEFAULT_OPTIONS” (2认同)