使用提供程序检测语言环境并在 angular 2 根模块上设置它
Detect locale and set it on angular 2 root module using provider
我有一个检测当前语言环境的功能,我需要通过提供商在 angular 2 root App 模块中设置语言环境。这样我就可以在所有其他组件中使用它。
我知道我可以像下面那样做。
{ provide: 'Locale', useValue: 'en-US' }
但如果可能的话,我想做下面这样的事情。
{ provide: 'Locale', useValue: this.detectLocale() }
否则请提出任何合适的方法来实现这一目标。谢谢
拥有一个 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
}
}
并提供您配置的单例实例 class:
{provide: AppConfig, useValue: new AppConfig()}
通过这种方式,您可以将所有设置和配置放在一个地方。
此外,我现在不能将 string
s 用作提供商令牌。提供商令牌只能是 class 类型。
我有一个检测当前语言环境的功能,我需要通过提供商在 angular 2 root App 模块中设置语言环境。这样我就可以在所有其他组件中使用它。
我知道我可以像下面那样做。
{ provide: 'Locale', useValue: 'en-US' }
但如果可能的话,我想做下面这样的事情。
{ provide: 'Locale', useValue: this.detectLocale() }
否则请提出任何合适的方法来实现这一目标。谢谢
拥有一个 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
}
}
并提供您配置的单例实例 class:
{provide: AppConfig, useValue: new AppConfig()}
通过这种方式,您可以将所有设置和配置放在一个地方。
此外,我现在不能将 string
s 用作提供商令牌。提供商令牌只能是 class 类型。