2017-01-18 13 views
9

@入力変更をリッスンする方法はありますか?angular2 @入力変更検出

次の例では、 'inputData'の値が変更されたときに通知されたいと思います。

@Input() inputData: InputData; 

答えて

13

うん、あなたはOnChangesライフサイクルイベントを使用することができます。

@Input() inputData: InputData; 

ngOnChanges() { 
    console.log(this.inputData); 
} 

角度のライフサイクルイベントhereについてお読みください。あなたのコンポーネント内にOnChangesコンポーネントのライフサイクルイベントに

3

聞くことができ

ngOnChanges(model: SimpleChanges){ 
    console.log(model) 
} 
3

次のようなものを使用することができます:あなたも取ることができ、このlink

で利用可能

Input('value') 
set value(val: string) { 
    this._value = val; 
    console.log('new value:', value); // <-- do your logic here! 
} 

の詳細情報を見てくださいthis article

15
import { Component, Input, OnChanges, SimpleChange } from '@angular/core'; 


export class Demo implements OnChanges { 

@Input() inputData: InputData; 
ngOnChanges(changes: {[propertyName: string]: SimpleChange}) { 

    if (changes['inputData'] && this.inputData) { 

     //your logic work when input change 
    } 
} 

} 
関連する問題