2015-11-27 13 views

risposta

16

In angolare 2 è possibile utilizzare gli eventi DOM nativi

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

Ora, basta definire un metodo che fa quello che è necessario quando il campo è sfocata

+0

ma vorrei fare solo due dati modo vincolante su un ingresso. Se devo implementare un metodo, aggiunge ulteriore sovraccarico all'implementazione di un binding a due vie. – matthewdaniel

+1

@matthewdaniel, non sono sicuro di quello che stai chiedendo. Se si desidera che il bind dei dati a due vie sia pronto all'uso, usare '[(ngModel)]' se si desidera definire un gestore di sfocatura utilizzare l'approccio di TGH. Se vuoi dire a 'ngModel' di aggiornare solo su sfocatura, ... beh, in realtà mi piacerebbe saperlo anche questo. Non credo che ci sia attualmente un modo per farlo ... facilmente – bodine

+0

L'equivalente Vue.js è il modificatore di binding "pigro": v-model.lazy = "myData". Sarebbe bello vedere in Angular 2. – nogridbag

3

Anche anche se questo è un thread molto vecchio, ora c'è una soluzione molto accurata che viene fornita con Angular5.

si attiva l'aggiornamento su sfocatura in questo modo:

forme Tempalte guidate:

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

forme reattive:

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

(è possibile selezionare submit o blur come valori)

Riferimento: https://medium.com/codingthesmartway-com-blog/angular-5-forms-update-9587c3735cd3