8

在 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';

main.ts. 我尝试按照其中一张 Github 票证中的建议将导入放在zone.js导入之前core-js,但它不起作用。

我需要在我的 中包含或链接另一个 polyfillindex.html吗?

编辑#1

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

编辑#2

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

4

2 回答 2

1

我一直在寻找。

显然,Firefox 缓存数据,因此您的问题。

很多人似乎对使用 Firefox 开发 Angular 感到恼火。

我找到了这段代码,它没有解决这个人的问题,但它应该可以解决你的问题:

$rootScope.$on('$viewContentLoaded', function() {
  $templateCache.removeAll();
});  

如果没有,我建议您查看缓存和 Angular2

于 2017-03-19T01:45:40.787 回答
1

由于还没有找到解决方案,我现在已经求助于手动触发更改检测(当用户代理是 Firefox 时)。

用法:

import { ApplicationRef } from '@angular/core';
...
constructor(private applicationRef: ApplicationRef) {}
...
setInterval(() => this.applicationRef.tick(), 100);
于 2017-03-20T14:50:20.820 回答