Инициализировать сервис без конструктора - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь добавить i18n (интегрированный с ngx-translate) в боковое меню, которое является постоянным объектом с каждым элементом внутри

Я попытался импортировать службу i18n, а затем объявить ее как переменную для использования внутри объекта:

import { Menu } from './menu.model';
import { TranslateService } from '@ngx-translate/core';

let translate: TranslateService;

export const verticalMenuItems = [

    new Menu(1, translate.instant('MENU.DASHBOARD'), '/', null, 'dashboard', null, false, 0),
]

Служба не будет распознана как ошибка, выдавшая ошибку

Невозможно прочитать свойство 'instant' из неопределенного

Что я здесь не так делаю?

1 Ответ

1 голос
/ 11 июля 2019

Вы просто объявляете переменную типа TranslateService, которая не инициализирована.На самом деле у вас нет экземпляра службы в переводе.Я бы предложил внедрить сервис в конструктор компонента, где вы объявляете свою константу.Я бы сделал что-то вроде этого.

export class ExampleClass {

    verticalMenuItems: any;
    constructor(private translate: TranslateService) {
        this.verticalMenuItems =
            [new Menu (1, translate.instant('MENU.DASHBOARD'), '/', null, 'dashboard', null, false, 0);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...