Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS 2本地化服务最佳实践_Angularjs_Angular_Localization - Fatal编程技术网

AngularJS 2本地化服务最佳实践

AngularJS 2本地化服务最佳实践,angularjs,angular,localization,Angularjs,Angular,Localization,我有一个服务,我可以打电话: 本地化('navbar.home') 它返回“家” 有几个问题: 目前,我必须将此服务注入到我使用的每个组件中,然后编写let lang=localization,有没有办法将它绑定到像NG1$rootScope这样的东西中,所以我必须加载它一次 是否有一种一次性绑定函数的方法?NG1给了我写的选项:{{::lang('navbar.home')},所以只调用了一次 我对本地化的态度可能完全过时,或者是错误的,因为我是从NG1迁移过来的 这里的最佳实践是什么?作为

我有一个服务,我可以打电话:

本地化('navbar.home')

它返回“家”

有几个问题:

  • 目前,我必须将此服务注入到我使用的每个组件中,然后编写
    let lang=localization
    ,有没有办法将它绑定到像NG1
    $rootScope
    这样的东西中,所以我必须加载它一次
  • 是否有一种一次性绑定函数的方法?NG1给了我写的选项:
    {{::lang('navbar.home')}
    ,所以只调用了一次

  • 我对本地化的态度可能完全过时,或者是错误的,因为我是从NG1迁移过来的


    这里的最佳实践是什么?作为一种服务保留它?不绑定一次?

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

    bootstrap(AppComponent, [
    /* everything you put here is available  in all components */ 
      ServiceOne,
      ServiceTwo
    ])
    
    您仍然需要在组件的构造函数中声明它们:

    constructor(private so: ServiceOne) {}
    
    但是您不能将它们包含在组件的
    提供者[]
    元数据中

    不能帮忙做其他事情(