从Angular2 Singleton Service内部的EventListener访问它

时间:2017-02-12 02:42:26

标签: angular angular2-services

我正在尝试观看一个窗口事件来更新Singleton服务中的变量。我放弃使用@HostListener,因为它似乎不起作用,我在某处读到它与服务不兼容。为什么以下代码:

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/Rx';

declare let window;

@Injectable()
export class SharedService {
    private progress = new BehaviorSubject(0); // edited according to aluans recommendation
    progressObservable$ = this.progress.asObservable();

    constructor() {
        window.addEventListener('progress', () => {
            this.progress.next(window.sharedService.progress);
        });
    }
}

生成此控制台错误:

未捕获的TypeError:_this.progress.next不是函数

解决了它最终成了一个问题,因为我在我附加服务的窗口对象上覆盖了进度变量。

0 个答案:

没有答案