Ben açısal 2 ile oynamak için basit marş uygulamasını oluşturma ve ben bir yapılacaklar hizmetini yapmak ve benim bileşene onu enjekte çalışıyorum ve ben bu hatayı alıyorum: TodoService içinEğik 2 Hayır sağlayıcı hatası
yok sağlayıcı ! (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);
sorunu nedir
? için@Component({
selector: 'my-app'
})
@View({
templateUrl: 'app.html',
directives: [For, If],
injectables: [TodoService] // moving this line
})
Değişim it:
@Component({
selector: 'my-app',
injectables: [TodoService] // to here
})
@View({
templateUrl: 'app.html',
directives: [For, If]
})
Bu DI onu almak ve enjekte sağlayacak
teşekkür ederiz. Ben de aynı şeyi yapıyorum. Ancak, uygulamam "enjektabl:" satırında çöküyor. TodoService yüklenmediğinden, daha sonra yüklenir. Eğer aynı dosyada onu iyi beyan edersem, ancak ayrı bir dosyada ise daha sonra gelir. Bundan nasıl kurtulabilirim? – Baconbeastnz
Muhtemelen yapıcıda @ InjectPromise kullanabilirsiniz; angular2.src.di.annotations_impl adresine bakın. –
daha yeni açısal http://stackoverflow.com/questions/30580083/angular2-no-provider-for-nameservice için bu cevabı kontrol edin – Peter