2017-02-22 41 views
1

我可以在視圖中檢索值,但不能在construtor中檢索值。 我的組件位於ngFor中,我想單獨編輯每個項目。這就是爲什麼我創建了一個子組件如何在沒有打字稿的情況下檢索Angular 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

Thans你它的工作;) –

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)? –

相關問題