У меня проблема с получением декоратора @inject
для работы при использовании Aurelia (фреймворк v 0.17, зависимость-инъекция v 0.11.2); Я получаю Неожиданную ошибку токена на декораторе. Я пробовал как Chrome 46, так и FF Dev 44.0a2, оба сообщают о той же ошибке. У меня есть экспериментальные функции javascript, включенные в Chrome. Инъекция работает очень хорошо, когда я использую параметр статического метода. У меня также есть Babel 5.8 для транспилера.Aurelia Defendency Injection Decorator не работает
Вот мои app.js:
import {inject} from 'aurelia-framework';
import {HttpClient} from 'aurelia-http-client';
@inject(HttpClient) // DI fails with decorator
export class App {
constructor(http) {
http.configure(config => {
config
.withHeader("Accept","application/json")
.withBaseUrl("http://localhost/projects/api/");
})
this.http = http;
}
//static inject() { return [HttpClient]; } // DI works fine with inject method
activate() {
return this.http.get("Project/Projects")
.then(response => {
this.projects = response.content;
});
}
}
Вот ошибка с Chrome:
Error: http://localhost:8088/app.js: Unexpected token (4:0)
2 | import {HttpClient} from 'aurelia-http-client';
3 |
> 4 | @inject(HttpClient)
|^
5 | export class App {
6 |
7 | constructor(http) {
Error loading http://localhost:8088/app.js
at Parser.pp.raise (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:62826:13)
at Parser.pp.unexpected (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:64056:8)
at Parser.pp.parseDecorator (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:63295:10)
at Parser.pp.parseDecorators (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:63281:37)
at Parser.pp.parseStatement (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:63183:10)
at Parser.parseStatement (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:64679:22)
at Parser.pp.parseTopLevel (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:63155:21)
at Parser.parse (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:62795:17)
at Object.parse (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:61662:50)
at Object.exports.default (http://localhost:8088/jspm_packages/npm/[email protected]/browser.js:7779:18)
Там должно быть что-то простое, что я с видом. Может быть, из-за транспиляции?
Отлично, это было именно так. Добавление элементов к babelOptions в мой config.js сделал трюк. Спасибо много! – squillman