我是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');
}
此代码未执行...
这不起作用的原因是什么?
答案 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);
}