Angular2提供者

时间:2016-07-27 17:08:28

标签: angular angular2-providers

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

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

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

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

1 个答案:

答案 0 :(得分:0)

最简单的解决方案可能是将两者包装成一个类并将该类作为提供者提供。注入字符串有点困难(尽管可能)。如果您想这样做,请阅读dependency injection guide中标题为非类依赖关系的部分。

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

//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);