我没有完全掌握提供者,无法弄清楚这一点。我有一个带有构造函数的类,如下所示:
constructor(private http:Http, private url:string, private ext:string){}
在引导程序中,我如何告诉DI提供Http,然后使用两个变量:environment.url
和environment.ext
来提供字符串?
我知道我需要使用提供者,但它不会接受令牌字符串,并且我需要多次指定,并且仅在我的类的情况下指定,而不是全局指定。
注意:我知道我可以在类中导入environment.url
和environment.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);