Angular 2 - script5007: 无法获取未定义或空引用的 'apply' 属性

6

我创建了一个简单的项目:

ng new my-app
cd my-app
ng serve

Chrome和Firefox都可以,但在IE 11中执行时,它返回此错误:SCRIPT5007。请问有人能帮助我吗?以下是相关截图:enter image description hereenter image description here
2个回答

18

问题出在CLI而不是Angular本身。

在更新版本的ANGULAR-CLI中,src\polyfills.ts默认被注释掉了。

  1. 打开文件 src/polyfills.ts
  2. 取消注释这些文件,完成。

浏览器 polyfills

/** IE9、IE10 和 IE11 需要以下所有 polyfills。 **/

以下是文件列表:

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

我在IEsafari中遇到了同样的问题,我取消了polyfill.js中相关行的注释,这样它就可以在IE上工作了,但safari仍然显示相同的错误,请建议如何在safari中解决这个问题。 - Umang Patwa

4
我发现这个问题可以在Angular 2.4中重现,您可以通过使用Angular 2.2.x或2.3.x来解决这个问题。 我已经为Angular团队提交了一个问题,这是链接:https://github.com/angular/angular/issues/14592 =================================================
看起来这不是Angular的问题,而是Angular CLI的问题。请参考https://github.com/angular/angular-cli/issues/4862 根据angular-cli问题的答案,IE11 polyfills默认是被注释掉的,您需要在src\polyfills.ts中启用polyfills。

1
在我看来,下面的Ali Adravi的回答应该被接受为正确的答案。 - dotnethaggis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接