2017-10-12 25 views
1

我有一個父組件,它具有一個具有輸入文本框的子組件。我注意到,keyup事件是向上傳播的,即使在我的根組件中,我也可以綁定它。當用戶在框中鍵入時,我綁定到(keyup)時會得到一個KeyboardEvent,我可以在根組件中捕獲它,而無需執行其他任何操作。捕獲父組件中的傳播事件

所以當文本發生變化時,我該怎麼做?我是否應該發佈已由本機支持的自定義事件,如keyup,keydown等子組件?

例如,我應該有一個:

@Output() textChange$ = new EventEmitter() 
在我的子組件

並捕獲KEYUP併發射textChange事件,然後綁定到(textChange)還是確定,只是避免它,因爲它是多餘的。我問的原因是,我不確定在所有情況下,從兒童到頂級父母的本地事件向上傳播是否一致。

Angular 4中的事件傳播是否與標準瀏覽器事件傳播行爲一致?

+0

如果這就是你的意思,EventEmitter不會像正常的DOM事件一樣冒泡。見[this](https://netbasal.com/event-emitters-in-angular-13e84ee8d28c#11d4) – amal

回答

0

使用lambda,父 - 子關係和對象傳遞作爲參數,使JavaScript開發人員更加輕鬆。

這完全取決於您的要求和實施部分。

此外,這是一個好的做法,讓父母處理其子女的所有事件。所以我們可以在父組件中輕鬆使用或修改相同的參數。