Tôi vừa cập nhật Góc từ rc-1
lên mới nhất rc-3
. Ứng dụng đang sử dụng JavaScript ES6 và SystemJS. Khi tôi chạy ứng dụng với browserync, nó hoạt động. Nhưng nếu tôi bó ứng dụng (với systemjs-builder) và sau đó chạy nó, tôi có lỗi này trong trình duyệt consoleBắt buộc phản ánh siêu dữ liệu siêu dữ liệu khi sử dụng ES6 với Angular2 rc3
Uncaught reflect-metadata shim is required when using class decorators.
vấn đề này xuất phát từ một thành phần sử dụng @angular/http
với một cuộc gọi http cơ bản, nếu tôi loại bỏ import {Http, HTTP_PROVIDERS} from '@angular/http' ;
nó hoạt động.
Ngoài ra, nó không xảy ra với TypeScript nhưng nó có với JS ES5 và ES6. Ngoài ra nó không xảy ra với Webpack.
Tôi nhìn vào mã kèm và dường như SystemJS đi qua Angular
mã trước khi Reflect
mã ... chỉ với es6
index.js
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
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]];
}
}
Bạn có sử dụng bất kỳ transpiler sử dụng trang trí? –
Có, tôi sử dụng https://github.com/systemjs/plugin-babel – rocketer