Angular 角形门2个+;rxjs回调发生在Safari的NgZone之外

Angular 角形门2个+;rxjs回调发生在Safari的NgZone之外,angular,zonejs,Angular,Zonejs,在将基于Angular2+Polymer1的大型客户端项目从Angular2 beta升级到stable之后,我注意到Angular的(eventname)DOM属性在使用Safari时会触发NgZone之外的函数,以及RxJS的回调(subscribe,map) 这是一个问题,因为这意味着我必须使用NgZone.run()将更改模板绑定变量的每个函数包装为仅针对Safari用户(iOS和桌面)的调用,否则Safari用户(+iPhone)必须通过在屏幕上随机单击触发更改检测事件 在Chrome

在将基于Angular2+Polymer1的大型客户端项目从Angular2 beta升级到stable之后,我注意到Angular的
(eventname)
DOM属性在使用Safari时会触发NgZone之外的函数,以及RxJS的回调(
subscribe
map

这是一个问题,因为这意味着我必须使用
NgZone.run()
将更改模板绑定变量的每个函数包装为仅针对Safari用户(iOS和桌面)的调用,否则Safari用户(+iPhone)必须通过在屏幕上随机单击触发更改检测事件

在Chrome上,函数在NgZone内调用(通过执行
NgZone.isInAngularZone()
进行验证)

是否为Safari提供了更优雅的解决方案(除了使用
NgZone.run()
包装所有调用之外)

上传了一个样本来重现这个问题(Angular2+聚合物)。

更新(11/03/2017) 我设法解决了NgZone之外的两个问题之一——
(domevents)
,方法是将
webcomponentsjs
polyfill加入
index.html
,而不是
angular cli.json
脚本:[]
部分。 纯拷贝和粘贴:

然而,
Http.post
回调仍然在
NgZone
之外调用,尽管我注意到如果我简单地删除webcomponentsjs polyfill,回调将在NgZone内执行


现在这个问题只有在我使用webcomponents
时才会发生,原因是Safari在XMLHttpRequestEventTarget中实现了addEventListener,我已经做了PR来修复它。

您所描述的将是一个巨大的角度问题。我刚刚在Safari上测试了我的一个angular应用程序(v2.4.7),它工作正常。您是否在safari上测试过其他角度应用程序?您是否检查过您是否具有正确的依赖项等?@JBNizet我使用的2.4.7具有正确的依赖项,我认为(
npm I
不“抱怨”)。。。我将尝试在
ng new…
(angular cli)模板上复制它,然后上载样本。@JBNizet上载的样本。使用我所做的其他实验进行更新。