Angular2 providers



我没有完全掌握提供者,无法弄清楚这一点。我有一个带有构造函数的类,如下所示: constructor(private http:Http, private url:string, private ext:string){}

在引导程序中,我如何告诉DI提供Http,然后使用两个变量:environment.urlenvironment.ext来提供字符串?

我知道我需要使用提供者,但它不会接受令牌字符串,并且我需要多次指定,并且仅在我的类的情况下指定,而不是全局指定。

注意:我知道我可以在类中导入environment.urlenvironment.ext,但我希望通过构造函数设置这两个参数,以最小化依赖关系。

最简单的解决方案可能是将两者封装到一个类中,并将该类作为提供程序提供。注入字符串有些困难(尽管可能)。如果您想这样做,请阅读依赖项注入指南中标题为非类依赖项的部分。

或者,如果你想要阻力最小的路径。

//environment-config.ts
export class EnvironmentConfig {
    constructor(public url:string, ext:string);
}
//main.ts (or wherever you call bootstrap)
config:EnvironmentConfig = {url:"foo", ext:"bar"};
bootstrap(RootComponent, [ config, HTTP_PROVIDERS, disableDeprecatedForms(), provideForms()]);
//foo.component.ts
constructor(private http:Http, private config:EnvironmentConfig);

最新更新