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)] 配合使用