2015-11-27 10 views

Odpowiedz

16

kątowej 2 można użyć rodzimych zdarzeń DOM

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

Teraz wystarczy zdefiniować metodę, która robi to, co trzeba, gdy pole jest zamazany

+0

ale chciałbym po prostu zrobić dwukierunkowy wiążące na wejściu danych. Jeśli muszę zaimplementować metodę, dodaje ona więcej narzutu do implementacji wiązania dwukierunkowego. – matthewdaniel

+1

@matthewdaniel, nie jestem pewien, o co pytasz. Jeśli chcesz mieć gotowe do użycia 2-drożne wiązanie danych, użyj '[(ngModel)]' jeśli chcesz zdefiniować program do usuwania plam, użyj podejścia TGH. Jeśli chcesz, aby 'ngModel' zaktualizował tylko rozmycie, ... naprawdę chciałbym to również wiedzieć. Nie sądzę, że jest obecnie sposób na to ... łatwo – bodine

+0

Odpowiednikiem Vue.js jest "leniwy" modyfikator wiązania: v-model.lazy = "myData". Byłoby wspaniale zobaczyć w Angular 2. – nogridbag

3

Nawet choć jest to bardzo stary wątek, jest teraz bardzo schludne rozwiązanie, które jest dostarczane z Angular5.

można wywołać aktualizację na rozmycie tak:

tempalte napędzane formy:

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

reaktywnych form:

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

(można wybrać submit lub blur jako wartości)

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

Powiązane problemy