Firefox中的更改检测无法正常运行

max*_*pre 8 javascript firefox polyfills zonejs angular

在Chrome中,一切正常,但在Firefox中,绑定永远不会更新.

这个问题似乎core-js和/或有关zone.js:

这些问题是固定的,但我是最新版本的angular(v2.4.9),它不起作用.

我导入polyfill.ts,这是:

import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/reflect';

import 'core-js/es7/reflect';
import 'zone.js/dist/zone';
Run Code Online (Sandbox Code Playgroud)

main.ts.我尝试在zone.js导入之前按照core-js其中一个Github门票建议导入,但它不起作用.

我需要包含或链接的另一个polyfill index.html吗?

编辑#1

看起来它在Firefox中的实际工作时间占50%.如果我刷新页面,它将每隔一段时间正确呈现页面.当它不起作用时,绝对没有绑定工作; 不执行事件回调,{{ ... }}不呈现绑定等.

编辑#2

这个错误实际上是由我在index.html中链接的Polymer的platform.js(Polymer的 polyfills)引起的.如果我将其删除,绑定将再次开始工作.我在我的应用程序中实现了这个Midi合成器,它使用了Polymer,这需要platform.js.所以似乎Firefoxplatform.js和Angular2 之间存在冲突.有没有办法解决这个冲突?

max*_*pre 0

由于尚未找到解决方案,我现在只能手动触发更改检测(当用户代理是 Firefox 时)。

用法:

import { ApplicationRef } from '@angular/core';
...
constructor(private applicationRef: ApplicationRef) {}
...
setInterval(() => this.applicationRef.tick(), 100);
Run Code Online (Sandbox Code Playgroud)