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