如果我有这样的服务注入:
export class MyService {
private fooService: IFooService;
public static $inject = [ "fooService" ];
constructor(fooService: FooService) {
this.fooService = fooService;
}
}
但我想在其构造函数中给fooService一个参数,我也可以吗?
答案 0 :(得分:3)
如果您想在运行/配置阶段计算某些内容或提供参数,请使用提供商
class MyServiceProvider implements ng.IServiceProvider {
private customParameter;
public setCustomParameter(val) {
this.customParameter = val;
}
public $get():Function {
return () => {
return new MyService(this.customParameter);
};
}
}
您现在可以在配置阶段注入MyServiceProvider并调用setCustomParameter。
如果您知道参数是什么,您可以使用常规注入,只需定义一个角度变量,如下所示:
angular.constant(CONSTANT_NAME, 'CONSTANT_VALUE');
export class fooService {
public static $inject = [ "CONSTANT_NAME" ];
constructor(CONSTANT_NAME) {
}
}