如何在导出的函数中注入服务?

Veg*_*ega 8 angular

我写了一个'popping'消息(android toast like)组件.所有其他组件都将其作为兄弟,并通过共享服务访问它.现在我想从实用程序函数中使用它,就像这样:

export function handleError(errorResp: Response | any): Observable<string> {
    ....
    // here I would like to display the message
    return Observable.throw(errMsg);
}
Run Code Online (Sandbox Code Playgroud)

我以为我可以将消息服务作为参数传递给handleError,但我觉得它不是DRY,因为我需要从每个组件事件中创建它,尽管组件不需要它用于其他目的.你能给我一些指导吗?

Edm*_*ues 2

由于此功能位于 Angular 应用程序之外,因此没有太多选项。

  • 通过参数传递它,或者
  • 直接导入服务(通过Javascript导入,因为Angular的服务只是一个普通的Javascript类),然后使用它。请注意,它可能无法工作,具体取决于实例化服务所需的要求(例如它是否使用 Angular 的某些功能,或使用 DI 注入其他服务),或者
  • 您可以将您的handleError函数放置在另一个可以通过依赖注入获取 Toast 的服务中。