如何加载特定的JSON-Files模块? Angular 4 - ngx-translate

时间:2017-04-24 11:38:40

标签: angular angular-translate ng2-translate ngx-translate

我是Angular 4和ngx-translate的新手。我正在寻找一种方法来为每个模块加载特定的JSON文件。

在我的app.module.ts中,此代码加载每种语言的json文件:

TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [Http]
  }
}),

export function HttpLoaderFactory(http: Http) {
  console.log('aiaiaiaiaiaia');
  return new TranslateHttpLoader(http, 'src/app/i18n/', '.json');
}

但是在另一个模块中这段代码:

TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [Http]
  }
}),

export function HttpLoaderFactory(http: Http) {
  console.log('jojojojojojojo');
  return new TranslateHttpLoader(http, 'src/app/cca-campaign-module/i18n/', '.json');
}

此代码未执行...

这不起作用的原因是什么?

1 个答案:

答案 0 :(得分:0)

将文件保存在Assets(与app dir并行)目录

请注意,如果您使用ng new YourAppname生成,则此资产目录与“app”目录存在相同的行,并且服务应该是app目录的子目录。可能如下所示:

::应用程序/服务/ myservice.ts

getOrderSummary():Observable {

    // get users from api
    return this.http.get('assets/ordersummary.json')//, options)
        .map((response: Response) => {
            console.log("mock data" + response.json());
            return response.json();
        }
        )
        .catch(this.handleError);
}