首页 > 解决方案 > 如何将模块导入子模块?

问题描述

我在我的 Angular 应用程序中使用 ngx-translate。我在 app.module.ts 中导入并完成了所有操作:

import {HttpClientModule, HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, '/assets/i18n/', '.json');
 }

@NgModule({
imports: [
    BrowserModule,
    HttpClientModule,
    TranslateModule.forRoot({
        loader: {
            provide: TranslateLoader,
            useFactory: HttpLoaderFactory,
            deps: [HttpClient]
        }
    })
],
bootstrap: [AppComponent]

@NgModule({
imports: [
    BrowserModule,
    HttpClientModule,
    TranslateModule.forRoot({
        loader: {
            provide: TranslateLoader,
            useFactory: HttpLoaderFactory,
            deps: [HttpClient]
        }
    })
],
bootstrap: [AppComponent]

我正在导入和导出模块,例如 github ngx-translate 页面上的示例。翻译工作正常。

但我有一个子文件夹,它有他自己的 module.ts 文件 pages.module.ts。当我想在 pages 文件夹中的 html 文件上使用 ngx-translate 时,我有信息,在这个应用程序中无法识别翻译管道。我想我需要将 app.module.ts 中的元素导入 pages.module.ts。我试过了,但我不知道该怎么做。

标签: angularngx-translate

解决方案


很可能您必须在子模块中使用TranslateModule.forChild(而不是) 。TranslateModule.forRootpages.module.ts

在子模块中使用 "extend" = true 从根模块获取设置

TranslateModule.forChild({
  extend: true
})

推荐阅读