2017-05-25 356 views
0

我写了我的第一个Angular 4应用程序,它在Chrome和Mozilla Firefox中运行良好。'WeakMap'在Angular 4和Internet Explorer中是未定义的

在这两个10和11版本的Internet Explorer不工作。

我得到(SystemJS)ReferenceError:'WeakMap'未定义 在traspiled main.js上。

这是我到外部JavaScript库和SystemJs配置参考:

<script src="https://unpkg.com/es6-shim"></script> 
<script src="https://unpkg.com/reflect-metadata"></script> 
<script src="https://unpkg.com/zone.js?main=browser"></script> 
<script src="https://unpkg.com/jquery"></script> 
<script src="https://unpkg.com/[email protected]/dist/system.js"></script> 
<script> 
    System.config({ 
     paths: { 
      'npm:': 'https://unpkg.com/' 
     }, 
     map: { 
      // angular bundles 
      '@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js', 
      '@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js', 
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
      '@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js', 
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
      '@angular/router/upgrade': 'npm:@angular/router/bundles/router-upgrade.umd.js', 
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
      '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js', 
      '@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js', 
      '@ng-bootstrap/ng-bootstrap': 'npm:@ng-bootstrap/ng-bootstrap/bundles/ng-bootstrap.js', 
      'rxjs': 'npm:[email protected]', 
     }, 
     packages: { 
      '': { 
       format: 'register', 
       defaultExtension: 'js' 
      } 
     } 
    }); 
    System.import('main.js').catch(function (err) { console.error(err); }); 
</script> 

这是main.ts文件:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { enableProdMode } from '@angular/core'; 

import { AppModule } from './app.module'; 

enableProdMode(); 

platformBrowserDynamic().bootstrapModule(AppModule); 

这是我tsconfig.json配置

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    "noImplicitAny": false, 
    "noEmitOnError": true, 
    "removeComments": false, 
    "sourceMap": true, 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "outDir": "./Scripts" 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

我没有明确使用WeakMap。 我只用里面的应用程序的文件,这个进口:

import { NgModule, enableProdMode } from '@angular/core'; 
import { Component, ViewEncapsulation } from '@angular/core'; 
import { Injectable } from '@angular/core'; 
import { Http, Headers, RequestOptions, RequestOptionsArgs } from '@angular/http'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { HttpModule, JsonpModule } from '@angular/http'; 
import { FormsModule } from '@angular/forms'; 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; 
import $ from 'jquery'; 

感谢您

+0

似乎'WeakMap'不支持IE 10和11.出于好奇,你可以与'WeakMap'分享你的用例吗?有可能您可以设计不同的应用程序。 – andreim

回答

相关问题