【问题标题】:Injecting into existing constructor注入现有的构造函数
【发布时间】:2017-04-14 11:21:40
【问题描述】:

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

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

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

我已尝试使用injector.get,它运行良好,但它注入的服务实例与其他组件不同,并且正在破坏我的应用程序(我依靠一些服务属性来显示信息)。

有什么解决办法吗?谢谢!

【问题讨论】:

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

标签: angular typescript ionic-framework


【解决方案1】:

要注入另一个服务,只需将其添加到构造函数之前可选参数。然后就好了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多