我想在我的前端使用ngx翻译来动态加载应用程序加载的翻译。
我的后端返回一个JSON格式的响应,例如:
{
"something: "something"
}我希望在我的TranslateLoader上使用该输出,而不是本地en.json文件。
有什么办法做到这一点吗?
TL;DL:我想调用'http://localhost:xxxx/api/translation/EN‘来获得翻译的JSON响应,并将其加载到TranslateHttpLoader上
发布于 2018-09-04 12:23:44
您可以创建一个工厂:
export function httpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, "http://localhost:xxxx/api/translation/", "");
}并在您的@NgModule导入中使用它:
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: httpLoaderFactory,
deps: [HttpClient]
}
}),发布于 2018-09-04 11:41:52
我们可以通过自定义加载器类实现使用TranslateLoader提供程序
In Module :
export class CustomLoader implements TranslateLoader {
constructor(private http: Http) {}
public getTranslation(lang: String): Observable<any> {
return this.http.get(URL).map(
(res: any) => {
return res;
}
);
}
}
@NgModule({
imports: [
TranslateModule.forRoot({
provide: TranslateLoader,
useClass: CustomLoader,
// useFactory: (createTranslateLoader),
deps: [Http]
})
]
}) 组件中的:
constructor(private _translate: TranslateService){}
const transText = this._translate.instant('something');https://stackoverflow.com/questions/52165296
复制相似问题