(change) vs (ngModelChange) en angular

Angular 1 n’accepte pas l’événement onchange, mais accepte uniquement l’événement ng-change .

Angular 2, d’autre part, accepte les deux événements (change) et (ngModelChange) , qui semblent tous deux faire la même chose.

Quelle est la différence?

Est-ce que l’un d’entre eux est plus performant?

ngModelChange :

  

vs changement :

  

(change) événement lié à un événement de changement de saisie classique.

https://developer.mozilla.org/en-US/docs/Web/Events/change

Vous pouvez utiliser (changer) l’événement même si vous n’avez pas de modèle à votre disposition comme

  

(ngModelChange) est la directive @Output de ngModel. Il se déclenche lorsque le modèle change. Vous ne pouvez pas utiliser cet événement sans la directive ngModel.

https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_model.ts#L124

Comme vous en découvrez plus dans le code source, (ngModelChange) émet la nouvelle valeur.

https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_model.ts#L169

Donc, cela signifie que vous avez la capacité d’un tel usage:

  modelChanged(newObj) { //do something with new value } 

Fondamentalement, il semble qu’il n’y ait pas de grande différence entre deux, mais les événements ngModel gagnent en puissance lorsque vous utilisez [ngValue] .

   dataChanged(newObj) { //here comes the object as parameter } 

supposons que vous essayiez la même chose sans “choses ngModel

  changed(e){ //event comes as parameter, you'll have to find selectedData manually //by using e.target.data }