¿Cómo utilizar la dependency injection Angular2 con decoradores de JavaScript?

Traté de inyectar un service (TodoStore) en mi componente (TodoList) pero fallaron con los decoradores. La única forma en que funciona es con decoradores de parameters de constructor

constructor(@Inject(TodoStore) store) 

que no es válido ES7 como sé. Traté de poner la inyección antes de la class o antes de la function de constructor, de ninguna manera trabajé con Webpack. Mi solución actual más estándar es

 static get parameters() { return [[TodoStore]]; } 

Mi pregunta es ¿hay alguna manera con decoradores en ES6 / ES7 válido para inyectar dependencies?

De hecho, no necesita usar la anotación @Inject . Su service debe tener una anotación @Injectable .

 import {Injectable} from 'angular2/core'; @Injectable() export class TodoStore { (...) } 

Para poder inyectarlo en su componente, simplemente agréguelo en los parameters de su constructor y en su list de proveedores:

 import {TodoStore} from './todoStore'; @Component({ selector: 'todo-list', providers: [ TodoStore ], template: ` (...) ` }) export class TodoListComponent { constructor(service:TodoStore) { this.service = service; } (...) } 

Espero que te ayude, Thierry

Prueba esto:

 import {Component, Inject} from 'angular2/core'; import {TodoStore} from './todoStore'; @Component(...) export class TodoListComponent { constructor(service) { this.service = service; } ... } // Workaround for parameter annotations TodoListComponent.parameters = [new Inject(TodoStore)];