2016-09-11 3 views
0

デモプロジェクトで1つのサービスを追加しました。インジェクション中にAngular 2のサービスを追加するにはどうしたらいいですか?

import {Injectable} from "@angular/core"; 
@Injectable() 
export class TodoService { 
    todos = []; 
} 

これを私のコンポーネントに挿入してください。

import {Component} from "@angular/core"; 
import {TodoService} from "./todo-service"; 

@Component({ 
    selector :'todo-input', 
    template: '<div><button (click)="btnClick(in)">Add item</button><input type="text" #in/></div>' 
}) 

export class Todo { 
    constructor(public todoservice: TodoService) { 

    } 

    btnClick(val) { 
     this.todoservice.todos.push(val.value); 
     console.log(this.todoservice.todos); 
    } 
} 

が、私はこのエラーここ

or: Error: Can't resolve all parameters for Todo: (?). 
     at CompileMetadataResolver.getDependenciesMetadata (https://unpkg.com/@angular/compiler/bundles/compiler.umd.js:14388:21) 
     at CompileMetadataResolver.get 

を取得していますと、 http://plnkr.co/edit/bYsvcXFsr1ZPX85JUVPk?p=preview

+0

はあなたNgModuleのプロバイダでTodoServiceを宣言したことがありますか? –

答えて

2

s

そしてがprovidersリストに追加app/todo-service.トンにごapp/todo-service.jsファイルを変更して、私のコードですあなたのcomponのENTまたはモジュール:

import {TodoService} from "./todo-service"; 

@Component({ 
    selector :'todo-input', 
    providers: [TodoService], <== this line 
    template: '..' 
}) 

export class Todo { 

Plunker

関連する問題