2017-03-09 9 views
0

なしプロバイダIがAngular2で次のコードを書いた:Angular2:インラインテンプレート:8:0によって引き起こされる:文字列

@Component({ 
    selector: 'add-item', 
    template: `<form-item [title]="abcde"></form-item>`, 
}) 

export class AddItemComponent { 
    forms: Object[] 

    constructor() { 
    this.forms = [{title: 'a', link: 'b'}]; 
    } 
} 

形態項目

アドインitem.component.ts .component.ts

@Component({ 
    selector: 'form-item', 
    template: `<h3>{{title}}</h3>`, 
    inputs: ['title'], 
    styles: [` 
    h3 { 
     color: blue;  
    } 
    `] 
}) 

export class FormItemComponent{ 

    @Input() 
    title: string; 

    constructor(title: string) { 
    this.title = title; 
    } 
} 

私はこのコードを実行すると、私はエラーを取得する:

Error: Error in ./AddItemComponent class AddItemComponent - inline template:8:0 caused by: No provider for String!

私は小さな研究を行いましたが、問題は何か分かりません。私もここで見た: Angular2 EXCEPTION No provider for String

あなたは私を助けてくれますか?

+0

MSDNのこの記事をご覧くださいhttps://msdn.microsoft.com/en-us/magazine/mt795191 –

答えて

2

コンストラクタからtitle: stringと初期化を削除する必要があります。プロバイダの引数としてのAngularのコンストラクタ。

1

FormItemComponentクラスには、次のようになります。

export class FormItemComponent{ 
    @Input() title: string = ""; 
} 

'タイトル'、コンストラクタ内で初期化することはできません。

関連する問題