注入现有的构造函数
问题描述:
我在尝试在Angular中向另一个服务注入服务时遇到一些困难。我试图通过扩展与现有的构造另一个类来创建一个服务,具体如下:注入现有的构造函数
@Injectable()
export class AuthHttpService extends AuthHttp {
constructor(options: AuthConfig, http: Http, defOpts?: RequestOptions) {
super(options, http, defOpts);
}
}
我的问题是:我需要注入其他服务到它,我似乎无法把它作为参数在构造函数中(不能在一个可选的参数之后放置一个必需的参数,如果我把它设置为可选的,那么它不起作用)。
我试过injector.get
,它工作得相当好,但它注入了一个不同于其他组件的实例,并正在破坏我的应用程序(我依靠一些服务属性来显示信息)。
任何解决方案?谢谢!
答
要注入另一个服务,只需将其添加到构造函数之前的可选参数。那么它会没事的。
@Injectable()
export class AuthHttpService extends AuthHttp {
constructor(options: AuthConfig, http: Http,
otherservice: OtherService,
defOpts?: RequestOptions) {
super(options, http, defOpts);
}
}
你想添加什么参数?你在哪里注册了这个参数的提供者?什么是你得到的错误信息?在可选参数之前添加它怎么样? –