将工厂方法从AppModule移动到Angular 7中的AppComponent

问题描述 投票:0回答:1

我使用ngx-translate-multi-http-loader加载器来创建特定的翻译。该文档要求必须在app.module.ts中创建此工厂:

export function multiTranslateHttpLoaderFactory(http: HttpClient) {
  return new MultiTranslateHttpLoader(http, [
    {prefix: './assets/i18n/default/', suffix: '.json'},
    {prefix: './assets/i18n/bc/', suffix: '.json'}
  ]);
}

此工厂以这种方式在导入阵列内配置:

TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: multiTranslateHttpLoaderFactory,
    deps: [HttpClient]
  }
}),

我需要一种方法将工厂放入我的app.component.ts,因为我仍然需要编写一些逻辑,并且不想在我的app.module.ts中执行此操作。

但是,如果我将方法移动到我的app.component.ts并在文件顶部生成所有必要的import语句,angular不会编译并返回此错误消息:

src / app / app.module.ts(55,21)中的错误:错误TS2304:找不到名称'multiTranslateHttpLoaderFactory'。

是否有可能或我真的必须在app.module.ts中定义工厂???

javascript angular typescript angular-components angular-module
1个回答
0
投票

在您定义工厂的位置或任何其他功能方面,这无关紧要。请确保正确导入它,位于app.module.ts顶部的某处

import {multiTranslateHttpLoaderFactory} from 'path/to/your/component'
© www.soinside.com 2019 - 2024. All rights reserved.