我正在尝试观看一个窗口事件来更新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不是函数
解决了它最终成了一个问题,因为我在我附加服务的窗口对象上覆盖了进度变量。