I einfache Starter App erschaffe mit Winkel 2 zu spielen, und ich versuche, einen To-do-Dienst zu machen und ihn zu meiner Komponente zu injizieren und ich bekomme diese Fehlermeldung:Angular 2 Kein Anbieterfehler
Keinen Anbieter für TodoService ! (TodoList -> TodoService)
TodoService.ts
export class TodoService {
todos: Array<Object>
constructor() {
this.todos = [];
}
}
app.ts
/// <reference path="typings/angular2/angular2.d.ts" />
import {Component, View, bootstrap, For, If} from 'angular2/angular2';
import {TodoService} from './TodoService'
@Component({
selector: 'my-app'
})
@View({
templateUrl: 'app.html',
directives: [For, If],
injectables: [TodoService]
})
class TodoList {
todos: Array<Object>
constructor(t: TodoService) {
this.todos = t.todos
}
addTodo(todo) {
this.todos.push({
done:false,
todo: todo.value
});
}
}
bootstrap(TodoList);
Was ist das Problem?
Dank dafür. Ich mache genau das Gleiche. Meine App stürzt jedoch bei der Zeile "injectables:" ab. Da der TodoService nicht geladen wurde, lädt er später .. Wenn ich es in der gleichen Datei deklariere, ist es in Ordnung, aber wenn es in einer separaten Datei ist, kommt es später. Wie kann ich das vermeiden? – Baconbeastnz
Sie können wahrscheinlich @InjectPromise im Konstruktor verwenden; siehe angular2.src.di.annotations_impl –
Überprüfen Sie diese Antwort auf neuere eckige http://StackOverflow.com/questions/30580083/angular2-no-provider-for-nameservice – Peter