0

我有一个检测当前语言环境的功能,我需要通过提供程序将语言环境设置为 angular 2 root App 模块。这样我就可以在所有其他组件中使用它。

我知道我可以像下面那样做到这一点。

{提供:'Locale',useValue:'en-US'}

但如果可能的话,我想在下面做这样的事情。

{ 提供:'Locale',useValue: this.detectLocale() }

否则请提出任何合适的方法来实现这一点。谢谢。

4

1 回答 1

1

拥有一个AppConfig将存储配置和其他常量值的提供程序在您的应用程序中可能很有用。

import { Injectable } from "@angular/core"

@Injectable()
export class AppConfig()
{
   public endPointUrl: string; // sample configuration value
   public local: string;

   constructor(){
       this.endpointUrl = "";
       this.local = ""; // use detect local logic here
   }
}

并提供您的配置类的单例实例:

{provide: AppConfig, useValue: new AppConfig()}

通过这种方式,您可以将所有设置和配置放在一个地方。

同样就像我现在你不能使用strings 作为提供者令牌。提供者令牌只能是类类型。

于 2016-11-25T11:57:05.037 回答