2016-09-09 15 views
1

エラーはかなり直接的ですが、CustomerServiceの注釈があり、Directivesで宣言しています。CustomerServiceに指令がありません

import {Injectable} from "@angular/core"; 
import {CustomerModel} from "../components/Customer/CustomerModel" 

@Injectable() 
export class CustomerService{ 

    customerList:CustomerModel[] = [ 
     new CustomerModel("Mr. "), 
     new CustomerModel("Miss. "), 
     new CustomerModel("Ms. "), 
    ]; 

} 

Customer.ts

export class CustomerModel{ 

    firstName:String = ""; 
    lastName:String = ""; 


    constructor(title:String = ""){ 

    } 

} 

CustomersComponent.ts

import {Component} from "@angular/core"; 
import {CustomerService} from "../../services/CustomerService" 
import {CustomerModel} from "./CustomerModel"; 

@Component({ 
    selector:'customers', 
    template: require('./Customer.html'), 

    directives:[ 
     CustomerService 
    ] 
}) 

export class CustomersComponent { 

    title:string = "Hello Drew"; 
    customer:CustomerModel = new CustomerModel(); 

    constructor(public service:CustomerService){ 

    } 

    onSubmit(){ 
     this.service.customerList.push(this.customer); 
     this.customer = new CustomerModel(); 
    } 
} 

誰もがもっと見たい場合、私はhttps://github.com/drewjocham/Angular2TestAppでgithubの上でこれを追加しました。 (

@Component({ 
    selector:'customers', 
    template: require('./Customer.html'), 

    providers:[ 
     CustomerService 
    ] 
}) 

をしかし、あなたはそれ以上進む前に、私はAngular2の最新リリース候補に更新することをアドバイスします:

答えて

0

それはプロバイダだ、あなたはプロバイダの配列ではなくディレクティブにCustomerServiceを追加する必要がありますRC.6)、それは単なる助言です:)。これにより、CustomerServiceのコンストラクタで依存関係注入が行われていない場合、@Injectable()は不要です。

+0

私はこのプロジェクトを生成するためにyeomanを使用しました。私は彼らがなぜ最新のアップデートではないのだろうかと思う。返信してくれてありがとう。 – Drew1208

関連する問題