如何将材质对话框方向rtl设置为默认值?

时间:2019-06-30 10:12:52

标签: angular angular-material

我的语言服务包含指导(ltr / rtl)。

所以当我打开对话框时,我会指定这样的方向:

    const dialogRef = this.dialog.open(SomeComponent,
      { direction: this.i18nService.dir}
    );

是否可以根据服务设置所有对话框的方向?

1 个答案:

答案 0 :(得分:2)

包含提供者时可以设置全局变量

@NgModule({
  providers: [
    {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}}
  ]
})

但是我认为您之后无法在全局范围内进行更改。

无论如何,您始终可以使用自己的服务来包装呼叫,如下所示:

import { Injectable, Component } from '@angular/core';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
import { I18nService } from './path/to/i18nService.service.ts';

@Injectable()
export class MyDialogService {
    constructor(private i18nService: I18nService, private dialog: MatDialog ) { }

    open(component: Component, config = {}): MatDialogRef {
        return this.dialog.open(component, Object.assign(config, { direction: this.i18nService.dir }));
    }
}