2017-10-12 9 views
1

子コンポーネントに入力テキストボックスがある親コンポーネントがあります。私は、keyupイベントが上向きに伝播し、私のルートコンポーネントでもそれにバインドできることに気付きました。ユーザーがボックスに入力すると、何かを追加することなくルートコンポーネントでキャプチャできる(keyup)にバインドするとKeyboardEventが取得されます。親コンポーネントで伝搬されたイベントを取得する

テキスト変更が発生したとき、何をやっているのですか?キーアップ、キーダウンなどの子コンポーネントがネイティブにサポートしているカスタムイベントを発行する必要がありますか?私の子コンポーネントで

@Output() textChange$ = new EventEmitter() 

とkeyUpイベントをキャプチャし、textChangeイベントを放出し、その後(textChange)に結合するか、または、それがあるので、それを避けるためにokです:

例えば、私が持っている必要があります冗長です。私が尋ねる理由は、子どもからトップレベルの親までのネイティブイベントの伝播がすべてのケースで一貫しているかどうかは不明です。

角度4でのイベントの伝播は、標準のブラウザイベント伝播の動作と一致します。

+0

EventEmitterは、通常のDOMイベントのようにバブルしません。 [this](https://netbasal.com/event-emitters-in-angular-13e84ee8d28c#11d4)を参照してください。 – amal

答えて

0

ラムダ、親子関係、およびパラメータ渡しのオブジェクトを使用すると、JavaScriptの開発者の方が楽になります。

これはすべてあなたの要件と実装の部分です。

これは、親がその子のすべてのイベントを処理するための良いプラクティスです。したがって、親コンポーネントで同じパラメータを簡単に使用または変更できます。

関連する問題