首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用ES6和Angular2 rc3时,需要使用元数据空间。

在使用ES6和Angular2 rc3时,需要使用元数据空间。
EN

Stack Overflow用户
提问于 2016-06-27 12:32:05
回答 1查看 26.6K关注 0票数 17

我刚从rc-1升级到最新的rc-3。该应用程序使用的是JavaScript、、ES6、和SystemJS。当我用浏览器同步运行这个应用程序时,它就能工作了。但是,如果我捆绑了这个应用程序(使用systemjs-builder),然后运行它,浏览器控制台中就会出现这个错误。

在使用类装饰器时需要元数据空间。

问题来自使用带有基本http调用的@angular/http的组件,如果我删除import {Http, HTTP_PROVIDERS} from '@angular/http' ;,它就能工作。

另外,TypeScript不会出现这种情况,但是JS ES5和ES6会发生这种情况。Webpack身上也不会发生这种事。

我查看了捆绑代码,似乎SystemJS在Reflect代码之前就已经通过了Reflect代码.只适用于es6

index.js

代码语言:javascript
复制
import 'reflect-metadata';
import 'es6-shim';
import 'zone.js';
import {bootstrap} from '@angular/platform-browser-dynamic';
import {App} from './app.js';
bootstrap(App);

app.js

代码语言:javascript
复制
import {Component} from '@angular/core';
import {Http, HTTP_PROVIDERS} from '@angular/http';
@Component({
  selector: 'App',
  template: '',
  providers: [HTTP_PROVIDERS]
})
export class App {
  constructor(http) {}

  static get parameters() {
    return [[Http]];  
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 13:28:52

reflect-metadataes6-shimzone.js应该是全球库。因此,您不应该像在index.js中那样将它们导入到模块中。

尝试删除index.js中的导入语句,并在index.html中引用它们,就像在Angular 2 Quickstart中解释的那样

代码语言:javascript
复制
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38054090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档