';WeakMap';未使用Angular 4和Internet Explorer定义
我编写了我的第一个Angular 4应用程序,它在Chrome和Mozilla Firefox中运行良好 在10和11版本的Internet Explorer中都不起作用 我得到(SystemJS)引用错误:“WeakMap”未定义 在traspiled main.js上 这是我对外部javascript库和SystemJs配置的参考:';WeakMap';未使用Angular 4和Internet Explorer定义,angular,internet-explorer,systemjs,Angular,Internet Explorer,Systemjs,我编写了我的第一个Angular 4应用程序,它在Chrome和Mozilla Firefox中运行良好 在10和11版本的Internet Explorer中都不起作用 我得到(SystemJS)引用错误:“WeakMap”未定义 在traspiled main.js上 这是我对外部javascript库和SystemJs配置的参考: <script src="https://unpkg.com/es6-shim"></script> <script src="h
<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/systemjs@0.19.31/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:rxjs@5.3.0',
},
packages: {
'': {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('main.js').catch(function (err) { console.error(err); });
</script>
这是我的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';
谢谢你我在IE10上遇到了这个问题。对我来说,它在IE11上确实有效。不管怎样,我包括了这个polyfill,至少这个页面是有效的——但还没有对它进行详尽的测试
Steve看来IE 10和11不支持
WeakMap
。出于好奇,您能否与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';