注入现有的构造函数

时间:2017-04-14 11:21:41

标签: angular typescript ionic-framework

我在尝试将服务注入Angular中的另一个服务时遇到了一些困难。我正在尝试通过使用现有构造函数扩展另一个类来创建服务,如下所示:

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

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

我尝试使用injector.get并且它运行得相当不错但是它注入了与其他组件不同的服务实例并且破坏了我的应用程序(我依靠一些服务属性来显示信息)。

任何解决方案?谢谢!

1 个答案:

答案 0 :(得分:1)

要注入其他服务,只需在可选参数之前将其添加到构造函数中。那就没事了。

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