2017-02-22 14 views
1

ビューで値を取得できますが、コンストラクタでは取得できません。 私のコンポーネントはngForにあり、それぞれのアイテムを編集したいですです。私は子コンポーネントで子コンポーネント角型2プロジェクトの入力値をタイプスクリプトなしで取得する方法

<li style="list-style-type: none;" *ngFor="let event of item.Events"> 
... <child-component [demo]="event"></child-component> 

を作成する理由です: 私はビューのデモの結果を表示することができますが、私はそれを操作できるようにするには、コンストラクタでそれを取得することはできません

@Component({ 
    selector: 'child-component', 
    queries: { 
     content: new ViewChild('content') 
    }, 
    templateUrl: 'build/pages/dashboard/timeline/timeline-feeling/index.html', 
    ... 
    inputs: ['demo'], 
    ... 
}) 

export class TimelinFeeling{ 
    static get parameters() { 
     return []; 
    } 

    constructor() { 
     this.demo = demo; 
     console.log(this.demo); //return undefined 
    } 

答えて

0

コンストラクタに入力値がまだ設定されていません。代わりにngOnInit()を使用してください:

ngOnInit() { 
    console.log(this.demo); //return undefined 
} 
+0

ご返信ありがとうございます。私はあなたのソリューションにこのエラーがあります:元の例外:ReferenceError:デモは定義されていません –

+0

あなたの質問のコードに同じ問題があるはずです。この行に何が意図されていたかわかりません。私はあなたがそれを単に取り除くことができると思います。 –

+1

あなたはそれを動作させます;) –

1

は(活字体の要件を)プロパティを宣言し@Inputとそれを飾る(角要件):

import { Input, ViewChild, ElementRef } from '@angular/core'; 
@Component({ 
    selector: 'child-component', 
    templateUrl: 'build/pages/dashboard/timeline/timeline-feeling/index.html', 
    ... 
}) 

export class TimelinFeeling{ 
    @Input() public demo = null; 
    @ViewChild('content') content: ElementRef; 
    static get parameters() { 
     return []; 
    } 

    ngOnInit() { 
     this.demo = demo; 
     console.log(this.demo); //return undefined 
    } 

最後に、代わりにngOnInitの値を確認してください。

+0

あなたの迅速な返事をありがとう。構文エラー予期しないトークン(31:18) –

+0

さて、あなたはそれをそのまま使用しましたか?あなたのコードでは、どの行が(31:18)に対応していますか? –

関連する問題