我正在建立一个Angular 4 Pipe
以支持国际化。我想将管道发布为npm模块,供其他人使用。管道将引用开发人员放入/assets/i18n/<lang>.json
文件的json数据,如下所示:
{
"welcome" : "Welcome",
"register" : "Register"
}
并用作这样的管道:
{{ 'welcome' | i18n }}
从导入的管道中引用json文件的最佳方法是什么?当我尝试使用require('assets/i18n/' + lang + '.json')
从导入的模块加载json时,无法解析路径。我应该使用HttpClient
get
吗?如果是这样,我如何同步将json数据送到管道?
请求帮助。
答案 0 :(得分:2)
我建议使用HttpClient.get
分支。在这里,您可以使用i18n
管道+ async
管道获取最终结果。
第一步是在管道的转换功能中返回Observable
。
constructor(private http: HttpClient) { }
transform(input) {
return this.http.get(...);
}
然后使用i18n
管道和async
管道自动订阅。
{{ 'welcome' | i18n | async }}
此处示例 demo 。