AngularJS 2本地化服务的最佳实践

时间:2016-06-19 17:37:35

标签: angularjs angular localization

我有一项服务,我可以致电:

localization('navbar.home')

它返回'Home'。

几个问题:

  1. 目前,我必须将此服务注入我使用的每个组件,然后我写let lang = localization;,有没有办法将它绑定到像NG1 $rootScope这样的东西,所以我'我必须加载一次吗?
  2. 有没有办法一次性绑定功能? NG1给了我写作的选项:{{::lang('navbar.home')}},所以它只被调用一次。
  3. 我对本地化的态度可能完全过时或错误,因为我正在从NG1迁移。

    这里的最佳做法是什么?把它当作服务?不绑定一次?

1 个答案:

答案 0 :(得分:1)

注入的服务是继承的,如果您希望在所有组件中使用它们,只需在根级别(bootstrap)注入一次:

bootstrap(AppComponent, [
/* everything you put here is available  in all components */ 
  ServiceOne,
  ServiceTwo
])

您仍然需要在您的组件中声明它们'构造:

constructor(private so: ServiceOne) {}

但是您不能将它们包含在组件的providers[]元数据中。

无法帮助解决其他问题(;