角管标准参考资产

时间:2017-09-07 00:43:33

标签: angular pipe assets

我正在建立一个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数据送到管道?

请求帮助。

1 个答案:

答案 0 :(得分:2)

我建议使用HttpClient.get分支。在这里,您可以使用i18n管道+ async管道获取最终结果。

第一步是在管道的转换功能中返回Observable

constructor(private http: HttpClient) { }

transform(input) {
  return this.http.get(...);
}    

然后使用i18n管道和async管道自动订阅。

{{ 'welcome' | i18n | async }}

此处示例 demo