'(change)' は、input、select、および textarea フィールド用のビルド済みイベント バインダーであることを認識しています。しかし、コンポーネントへのイベント バインダーとして使用するとはどういう意味でしょうか?
コンポーネントの呼び出し:
<dropdown-list [items]="countrycodes" (change) = "updateCCode($event)" > </dropdown-list>
ドロップダウン リスト コンポーネント内には、選択ボックスと、リストをフィルター処理するためのテキスト ボックスがあります。選択ボックスの値が選択されると、最終的に親コンポーネントの 'updateCCode' イベントを発生させる emit イベントを発生させます。
テキスト フィールドを編集してフォーカスを外すと、驚くことに「updateCCode」イベントが発生します。最終的に、回避策を得るために、コードを次のように変更する必要がありました。
<dropdown-list [items]="countrycodes" (changeUpdated) = "updateCCode($event)" > </dropdown-list>
私のイベントバインダー名は「(変更)」だったので、デフォルトの「onChange」イベントの発生を避けるために。
質問
これは正しいアプローチですか?コンポーネントに発行されたときに (変更) イベントエミッターが onChange ネイティブ関数をオーバーライドしないのはなぜですか? ある種の onchange リスナーを実装して、'preventDefault' を呼び出す必要がありますか?