Как получить экземпляр одноэлементной службы, которая находится в работающем модуле для функции справки для этого модуля?

Я делаю многоязычное приложение. Я использую пакет ngx-translate, все шло очень хорошо, потому что модуль ngx-translate предоставляет мне 2 варианта перевода, он предоставляет мне сервис перевода для перевода текстовых строк внутри component.ts и директиву | перевести, чтобы перевести текстовые строки в component.html.

Я использую угловую конструкцию материала, но раздел пагинатора (mat-paginator) можно получить только с помощью директивы углового материала, я исследовал в интернете, как перевести эти строки, и тот же угловой материал дает вам способ сделать это, в На самом деле, это дает вам пример:

https://stackblitz.com/edit/angular-5mgfxh-6mbpdq

Пример показывает, что вы должны использовать функцию справки для перевода текстовых строк, вызывая функцию в модуле, где перевод будет выполняться следующим образом:

app.module.ts

{предоставить: MatPaginatorIntl, useValue: getDutchPaginatorIntl() }

export function getDutchPaginatorIntl() {
  const paginatorIntl = new MatPaginatorIntl();

  paginatorIntl.itemsPerPageLabel = 'Items per pagina:';
  paginatorIntl.nextPageLabel = 'Volgende pagina';
  paginatorIntl.previousPageLabel = 'Vorige pagina';

  return paginatorIntl;
}

Проблема здесь, как я могу вставить экземпляр TranslateService, который находится внутри этого модуля в этой функции справки?

Как я могу перетащить экземпляр службы перевода, который находится внутри этого модуля, в функцию справки, которая предназначена для перевода этого модуля?

В качестве дополнительных данных я импортирую TranslateModule, предоставляемый сервисом translate, и канал translate для всех компонентов этого модуля.

Я уже пытался сделать это:

app.module.ts

{provide: MatPaginatorIntl, useValue: getTranslatePaginatorIntl, deps: [TranslateService]}

Функция getTranslatePaginatorIntl:

export function getTranslatePaginatorIntl (translate: TranslateService) {
  const paginatorIntl = new MatPaginatorIntl ();

  paginatorIntl.itemsPerPageLabel = 'Items per page:';
  paginatorIntl.firstPageLabel = 'First page';
  paginatorIntl.previousPageLabel = 'Previous page';
  paginatorIntl.nextPageLabel = 'Next page';
  paginatorIntl.lastPageLabel = 'Last page';

  return paginatorIntl;
}

И это не работает, вы можете мне помочь?

У меня есть пример, работающий в: https://stackblitz.com/edit/translate-mat-paginator-with-ngx-translate

0 ответов

Другие вопросы по тегам