Input 和 change事件是html原生的事件。ngModelChange是Angular 2+ 里面的事件。
那么这三个事件有什么区别呢?
案例演示:
<input type="text" style="width: 100px; height: 34px;" (input)="onInput()">
<input type="text" style="width: 100px; height: 34px;" (change)="onChange()">
<input type="text" style="width: 100px; height: 34px;" [(ngModel)]="inputStr" (ngModelChange)="onNgModelChange()">
触发条件:
- Input: 输入字符时触发(不包含功能性按键, enter, control 等)
- Change: 失去焦点且当前的值跟上次触发的值不同 或者 enter键被触发且当前的值跟上次触发的值不同
- ngModelChange: 它的触发条件和input事件的触发条件是一样的,只是它需要和 [(ngModel)] 配合使用