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 }