0

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

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

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

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

4

1 回答 1

0

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

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

//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);
于 2016-07-27T18:55:27.457 回答