如何在IE中获取更新变量的observable?

时间:2016-04-20 22:15:16

标签: angular rxjs

出于某种原因,我可以将此代码用于Chrome,但没有找到Safari和IE的解决方案。我还没有尝试过Firefox。我的项目正在使用打字稿编译器。

constructor(){
    this.eventStream = Observable.fromEvent(window,'resize');
    this.eventStream.subscribe((event) => this.updateWindow(event));
}

ngOnInit(){
    this.updateWindow();
}

updateWindow(event:any){
    this.updateHeight = window.innerHeight;
}

Plunker example

1 个答案:

答案 0 :(得分:3)

你的代码在Firefox中运行,但在Safari和IE中却没有,它看起来很奇怪。我的猜测是zone.js对此负责。更改了您的示例以通过区域调用更新:

constructor(zone:NgZone)
{
this.eventStream = Observable.fromEvent(window,'resize');
this.eventStream.subscribe((event) => {zone.run(()=> {this.updateWindow(event)}) });
}

现在它适用于Safari plunkr