2016-10-17 18 views

答えて

10

@Input()ここ成分

class ChildComponent { 
    @Input() data; 
} 

@Component({ 
    template: `<child [data]="parentData"></child> 
}) 
class ParentComponent { 
    parentData; 
} 

にでParentComponentデータを通過させることである@Input()プロパティによって子にデータを渡しています。 [data]は、子コンポーネント内のプロパティと同じ名前です。あなたは、プロパティ名とは異なる名前を使用したい場合は、@Input('diff-name')

@Outputを使用することができ、データを発するようです(イベント)ChildComponentここでコンポーネント

class ChildComponent { 
    @Output() dataChange = new EventEmitter(); 

    click() { 
    dataChange.emit('new Value'); 
    } 
} 

@Component({ 
    template: `<child (dataChange)="onDataChange($event)"></child> 
}) 
class ParentComponent { 

    onDataChange(event) { 
    console.log(event); 
    } 
} 

からアウトは、それ@Outputを持っていますにイベントを送信します。親はリスンしてコールバックを(dataChange)に渡します。子がイベントを発行するたびに、親コールバックがイベントの受け渡しと呼ばれます。

+0

ありがとうございます@peeskillet、いつ私たちはEventEmitterを使用する必要がありますか。どのようなタイプのニーズが解決しますか? – Oladapo

+0

親にいくつかの値を出力したいユースケースはいくつでもかまいません。おそらく、プロジェクトの構築を開始するだけです。あなたはこの状況に遭遇する可能性が最も高いでしょう、そして、あなたはその "AHAHの瞬間"にぶつかり、EventEmitterが完璧であることを実現します:-)。 '(something)=" callback() "'が見えるときはいつでも、イベントの後ろにEventEmiiterがあることを知っています。それはあなたにいくつかの洞察を与えるかもしれない –

+0

EventEmitter e @OutPut semper andam juntos? +1 – cura

関連する問題