我的语言服务包含指导(ltr / rtl)。
所以当我打开对话框时,我会指定这样的方向:
const dialogRef = this.dialog.open(SomeComponent,
{ direction: this.i18nService.dir}
);
是否可以根据服务设置所有对话框的方向?
答案 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 }));
}
}