Как настроить теги сценария для angularjs 2, написанные в Es6 для переноса в Es5
Ниже приведено описание плункера, которое началось с шаблона angularjs 2 es6 http://goo.gl/IGaTZw Я добавил traceur и удалил замену main.es6.js на main.js, если неявный режим мешает.
<head>
<script data-require="traceur-runtime@0.0.88" data-semver="0.0.88" src="https://cdn.rawgit.com/google/traceur-compiler/d3d0553de3315398a956dc2f9edd6a982d786b0a/bin/traceur-runtime.js"></script>
<script src="https://jspm.io/system.js"></script>
<script src="https://code.angularjs.org/2.0.0-alpha.30/angular2.dev.js"></script>
</head>
<body>
<app></app>
<script>System.import('main');</script>
</body>
Main.js -----
import {
ComponentAnnotation as Component,
ViewAnnotation as View, bootstrap
} from 'angular2/angular2';
@Component({
selector: 'app',
viewInjector: [Service]
})
@View({
template: '{{greeting}} world!'
})
class App {
constructor(service: Service) {
this.greeting = service.greeting();
setTimeout(() => this.greeting = 'Howdy,', 1000);
}
}
class Service {
greeting() {
return 'Hello';
}
}
bootstrap(App);
Я попытался сделать это локально, загрузив файлы сценариев, но там тоже не получилось. Я не могу использовать npm и т. Д., Так как у меня проблема с ноутбуком.
Спасибо заранее.
1 ответ
Чтобы исправить, включите параметры traceur:
System.config({
traceurOptions: {
annotations: true
}
, (аннотации являются экспериментальными и должны быть включены вручную) добавить
import { Inject } from 'angular2/di';
и измените аргумент конструктора приложения
constructor(@Inject(Service) service).
Также представляется возможным, чтобы тип в конструкторе конструктора ( service:Service) обходился без аннотации внедрения, если вы добавляете типы:true в опции traceur.