Angulaire 2 ngModelChange ancienne valeur
Quelqu'un peut-il me dire quelle est la meilleure pratique pour comparer ngModel ancienne et la nouvelle valeur?
Angulaire 1:
$scope.$watch('someProperty', funciton(oldVal, newVal){
//code goes here
})
Je demande cela parce que (ngModelChange)
jamais m'apporte le oldVal
, seul le newVal
.
Dans mon cas, je suis en utilisant ngModel dans un <select>
balise et de comparer l'ancien sélection avec la nouvelle:
<select [(ngModel)]="current" (ngModelChange)="onModelChange($event)">
<option *ngFor="let item of myArray" [ngValue]="item">{{item.name}} </option>
</select>
OriginalL'auteur Ron Avraham | 2017-01-09
Vous devez vous connecter pour publier un commentaire.
Cela pourrait fonctionner
ou
Il suffit de déclarer une variable de ce nom dans les composants de la classe. Je l'ai ajouté à mon code (dans le 2ème exemple)
Ok, je comprends maintenant. mais cette solution semble être très manuellement, êtes-vous sûr que c'est la meilleure pratique? il n'y a rien livré par angulaire 2 pour obtenir le oldVal?
Non, Angulaire ne fournit
$event
ou si vous utilisez[ngModel]="myValue"
les mises à jour de lamyValue
bien avec la nouvelle valeur. Si vous utilisez[myProp]="someValue"
la liaison à un@Input() myProp;
, puis lorsque la liaison est mise à journgOnChanges(changes)
,changes
contient l'ancienne valeur en tant que bien, mais cela ne s'applique pas à votre situation, c'est uniquement pour la liaison du parent à l'enfant.tout à droite, puis, merci!
OriginalL'auteur Günter Zöchbauer
Exemple avec un champ de saisie...
OriginalL'auteur AJT_82