【发布时间】:2017-12-04 01:49:16
【问题描述】:
Angular 1 不接受 onchange() 事件,它只接受 ng-change() 事件。
另一方面,Angular 2 接受 (change) 和 (ngModelChange) 事件,它们似乎都在做同样的事情。
有什么区别?
哪一个最适合性能?
ngModelChange:
<input type="text" pInputText class="ui-widget ui-text"
(ngModelChange)="clearFilter()" placeholder="Find"/>
vs 改变:
<input type="text" pInputText class="ui-widget ui-text"
(change)="clearFilter()" placeholder="Find"/>
【问题讨论】:
-
我不想比较这些。我只想知道哪一个最适合性能?
-
是的,没有可比性。如果您使用的是 ngModel ,则可以使用后者,否则使用第一个。它总是首选避免使用 ngModel,因为这是双向数据绑定,因此对性能不利
-
编辑强调“有什么区别”和“哪个更高效”以消除主观性并投票重新开放。
-
在 Angular 7 中, (ngModelChange)="eventHandler()" 将在绑定到 [(ngModel)]="value" 的值更改之前触发,而 (change)="eventHandler() " 将在绑定到 [(ngModel)]="value" 的值更改后触发。
-
顺便说一下,只有当焦点离开输入时才会触发 (change) 事件。如果您希望在每次按键后触发一个事件,您可以使用 (input) 事件。
标签: javascript html angular typescript angular-ngmodelchange