2015-11-27 1 views

Répondre

16

Dans angulaire 2, vous pouvez utiliser les événements DOM natifs

<input (blur)="someMethod()" /> 

Maintenant, il suffit de définir une méthode qui fait ce que vous avez besoin quand le champ est floue

+0

mais je voudrais juste faire une deux données de manière à obliger une entrée. Si je dois implémenter une méthode, cela ajoute plus de surcharge à l'implémentation d'une liaison bidirectionnelle. – matthewdaniel

+1

@matthewdaniel, je ne sais pas ce que vous demandez. Si vous voulez une liaison de données bidirectionnelle prête à l'emploi, utilisez [(ngModel)] 'si vous voulez définir un gestionnaire de flou, utilisez l'approche de TGH. Si vous voulez dire à 'ngModel' de ne mettre à jour que le flou, ... eh bien, j'aimerais aussi le savoir. Je ne crois pas qu'il existe actuellement un moyen de le faire ... facilement – bodine

+0

L'équivalent de Vue.js est le modificateur de liaison "paresseux": v-model.lazy = "myData". Ce serait génial de voir dans Angular 2. – nogridbag

3

Même Bien que ce soit un très vieux fil de discussion, il y a maintenant une très bonne solution qui vient avec Angular5.

Vous déclenchez la mise à jour sur le flou comme celui-ci:

formes motrices tempalte:

<input [(ngModel)]="lastname" [ngModelOptions]="{ updateOn: 'blur' }"> 

formes réactives:

this.nameForm = new FormGroup ({ 
    firstname: new FormControl('', { 
    validators: Validators.required, 
    updateOn: 'submit' 
    }), 
    lastname: new FormControl('', { 
    validators: Validators.required, 
    updateOn: 'submit' 
    }) 
}); 

(vous pouvez sélectionner submit ou blur comme valeurs)

Référence: https://medium.com/codingthesmartway-com-blog/angular-5-forms-update-9587c3735cd3