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

Angular 4.0.0 App built by angular-cli 1.0.0 not working in IE11

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

Error: The "apply" property of an undefined or null reference can not be retrieved.

我没有安装额外的库,它只是一个新生成的项目。在 Google Chrome 中,它运行良好。 我的 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"
}
}

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

See the docs 有关浏览器支持的指导。

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

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