注入在构造函数中定义但在同一类的函数中未定义的BsModalService

时间:2019-08-11 06:34:21

标签: angular7

我将BsModalService注入自己的提供程序中,在构造函数中定义了bs模态服务,但在同一类的函数中却未定义。

我尝试使用注入属性,尝试添加deps属性。

这里是我的提供程序类的相关部分:

constructor(
        private http: HttpClient,
        private modalService: BsModalService
    ) {
        // here the service is defined and everything is good
        console.log(this.modalService);
    }

    public errorHandler(e?: any) {
        // here the service is undefined
        console.log(this.modalService);
        if (this.modalService.getModalsCount() <= 1) {
            this.modalService.show(NetworkErrorDialogComponent, {initialState: e});
        }
        return of(e);
    }

    public getData(options?: HttpOptions) {
                return this.http.get('path/to/my/api', options).pipe(
                    map(response => response.data || response),
                    catchError(this.errorHandler)
);
            }

1 个答案:

答案 0 :(得分:0)

解决了, 我将errorHandler转移到catchError而不是调用它。 这是解决方案:

catchError(e => this.errorHandler(e))