注入现有的构造函数

问题描述:

我在尝试在Angular中向另一个服务注入服务时遇到一些困难。我试图通过扩展与现有的构造另一个类来创建一个服务,具体如下:注入现有的构造函数

@Injectable() 
export class AuthHttpService extends AuthHttp { 
    constructor(options: AuthConfig, http: Http, defOpts?: RequestOptions) { 
     super(options, http, defOpts); 
    } 
} 

我的问题是:我需要注入其他服务到它,我似乎无法把它作为参数在构造函数中(不能在一个可选的参数之后放置一个必需的参数,如果我把它设置为可选的,那么它不起作用)。

我试过injector.get,它工作得相当好,但它注入了一个不同于其他组件的实例,并正在破坏我的应用程序(我依靠一些服务属性来显示信息)。

任何解决方案?谢谢!

+0

你想添加什么参数?你在哪里注册了这个参数的提供者?什么是你得到的错误信息?在可选参数之前添加它怎么样? –

要注入另一个服务,只需将其添加到构造函数之前的可选参数。那么它会没事的。

@Injectable() 
export class AuthHttpService extends AuthHttp { 
    constructor(options: AuthConfig, http: Http, 
       otherservice: OtherService, 
       defOpts?: RequestOptions) { 
     super(options, http, defOpts); 
    } 
}