1

我是 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');
}

这段代码没有被执行......

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

4

1 回答 1

0

将文件保存在 Assets(与应用程序目录平行)目录中

请注意,如果您使用 ng new YourAppname 生成 - 此 assets 目录与“app”目录存在同一行,并且 services 应该是 app 目录的子目录。可能如下所示:

::app/services/myservice.ts

getOrderSummary(): 可观察的 {

    // 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);
} 
于 2017-05-03T12:18:17.837 回答