Как установить направление диалога материалов по умолчанию? - PullRequest
2 голосов
/ 30 июня 2019

У меня есть языковая служба, содержащая направление (ltr / rtl).

Поэтому, когда я открываю диалог, я указываю направление, как это:

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

Есть ли способ установить направление для всех диалогов в соответствии с услугой?

1 Ответ

2 голосов
/ 30 июня 2019

Вы можете установить глобальные переменные, если вы включаете провайдеров

@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 }));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...