2017-02-03 11 views
17

Aby przesłać formularz w Angular 2, można użyć zdarzenia "submit" lub "ngSubmit" formularza.submit vs ngSubmit w Angular 2

<form #frm="ngForm" (submit)="add(frm.value)"> 
    ... 
</form> 

<form #frm="ngForm" (ngSubmit)="add(frm.value)"> 
    ... 
</form> 

Chciałbyś wiedzieć jaka jest różnica między tymi dwoma?

Odpowiedz

10

z tym samouczku https://blog.thoughtram.io/angular/2016/03/21/template-driven-forms-in-angular-2.html

Jednak ngSubmit zapewnia, że ​​forma nie przedstawi, gdy kod obsługi rzuca (co jest domyślne zachowanie złożyć) i powoduje faktyczne żądania HTTP POST. Użyjmy ngSubmit zamiast jak to jest najlepsza praktyka:

+1

Korzystanie [email protected] gdybym umieścić 'rzucać nowy błąd („rekt”);' linia w funkcji, która moim 'ngSubmit' połączeń, to nadal wykona rzeczywiste żądanie http na serwerze, gdy umrze. Jedynym sposobem, w jaki mogę to teraz zatrzymać, jest wykonanie następującej odpowiedzi: http://stackoverflow.com/a/40055510/232629 (TL; DR: Wyślij w '$ event' z szablonu i wywołaj' event.preventDefault(); "jako pierwsza rzecz w twoim' ngSubmit') –