由angular-cli 1.0.0构建的Angular 4.0.0应用程序无法在IE11中运行

Phi*_*ecz 25 internet-explorer-11 angular-cli angular4 angular

我尝试在Internet Explorer 11中运行由angular-cli 1.0.0构建的我的处女Angular 4应用程序,但是我没有成功,我收到以下错误:

Error: The "apply" property of an undefined or null reference can not be retrieved.
Run Code Online (Sandbox Code Playgroud)

我没有安装额外的库,它只是一个新生成的项目.在谷歌浏览器中它完美运行.我的package.json:

{
"name": "angi4testie",
"version": "0.0.0",
"license": "MIT",
"scripts": {
  "ng": "ng",
  "start": "ng serve",
  "build": "ng build",
  "test": "ng test",
  "lint": "ng lint",
  "e2e": "ng e2e"
},
"private": true,
"dependencies": {
  "@angular/common": "^4.0.0",
  "@angular/compiler": "^4.0.0",
  "@angular/core": "^4.0.0",
  "@angular/forms": "^4.0.0",
  "@angular/http": "^4.0.0",
  "@angular/platform-browser": "^4.0.0",
  "@angular/platform-browser-dynamic": "^4.0.0",
  "@angular/router": "^4.0.0",
  "core-js": "^2.4.1",
  "rxjs": "^5.1.0",
  "zone.js": "^0.8.4"
},
"devDependencies": {
  "@angular/cli": "1.0.0",
  "@angular/compiler-cli": "^4.0.0",
  "@types/jasmine": "2.5.38",
  "@types/node": "~6.0.60",
  "codelyzer": "~2.0.0",
  "jasmine-core": "~2.5.2",
  "jasmine-spec-reporter": "~3.2.0",
  "karma": "~1.4.1",
  "karma-chrome-launcher": "~2.0.0",
  "karma-cli": "~1.0.1",
  "karma-jasmine": "~1.1.0",
  "karma-jasmine-html-reporter": "^0.2.2",
  "karma-coverage-istanbul-reporter": "^0.2.0",
  "protractor": "~5.1.0",
  "ts-node": "~2.0.0",
  "tslint": "~4.5.0",
  "typescript": "~2.2.0"
}
}
Run Code Online (Sandbox Code Playgroud)

Jol*_*boy 60

Angular-CLI在src /目录中包含一个名为pollyfills.ts的文件.

 * BROWSER POLYFILLS
 */

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es7/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/es7/array';
Run Code Online (Sandbox Code Playgroud)

取消注释该文件中的所有IE polyfill,事情应该可以顺利进行.


sno*_*ete 13

IE 11的ES6 polyfill需要.因此,您必须为所需的polyfill添加脚本标记,以便您的应用程序在IE11上运行.

有关浏览器支持的指导,请参阅文档.

  • 谢谢@snorpete!:)我已经安装了core-js,但是我必须添加行require('core-js')? (2认同)
  • 如果你检查文档,你会发现core-js是如此'核心',你需要将它作为脚本标记添加到index.html而不是导入它 (2认同)