在没有构造函数的情况下初始化服务

时间:2019-07-11 20:23:29

标签: angular typescript internationalization

我正在尝试将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),
]

它不会被识别为抛出错误的服务

无法读取未定义的属性“即时”

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

您只是在声明一个TranslateService类型的变量,该变量尚未初始化。您实际上没有转换的服务实例。我建议将注入服务到您要声明常量的组件的构造函数中。我会做这样的事情。

export class ExampleClass {

    verticalMenuItems: any;
    constructor(private translate: TranslateService) {
        this.verticalMenuItems =
            [new Menu (1, translate.instant('MENU.DASHBOARD'), '/', null, 'dashboard', null, false, 0);
    }
}