我知道“(更改)”是用于输入、选择和文本区域字段的预构建事件绑定器。但是,当我们将它用作组件的事件绑定器时,这意味着什么?
调用组件:
<dropdown-list [items]="countrycodes" (change) = "updateCCode($event)" > </dropdown-list>
在下拉列表组件中,有一个选择框以及一个用于过滤列表的文本框。选择选择框值时,我发射发射事件,该事件最终发射父部件的“ UpdateCcode”事件。
现在,如果我编辑文本字段并移除焦点,它会令人惊讶地触发“updateCCode”事件。最终,为了获得解决方法,我不得不将代码更改为:
<dropdown-list [items]="countrycodes" (changeUpdated) = "updateCCode($event)" > </dropdown-list>
以避免触发默认的“onChange”事件,因为我的事件绑定器名称是“(更改)”。
问题
这是一个正确的方法吗?为什么(更改)事件发射器在向组件触发时不会覆盖 onChange 本机函数?我应该实现某种 onchange 监听器并让它调用 'preventDefault' 吗?