2017-02-03 3 views
17

Чтобы отправить форму в Angular 2, мы можем либо использовать событие «отправить», либо «ngSubmit».submit vs ngSubmit in Angular 2

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

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

Хотел бы знать, в чем разница между ними?

ответ

10

из этого учебника, https://blog.thoughtram.io/angular/2016/03/21/template-driven-forms-in-angular-2.html

Однако ngSubmit гарантирует, что форма не представляет, когда код обработчик бросков (который является поведение по умолчанию представить) и вызывает фактический запрос HTTP POST. Давайте использовать ngSubmit вместо этого, как является лучшей практики:

+1

Использование [email protected] если я положил 'певд Error («rekt»);' строка в функции, что мой 'ngSubmit' называет, это все равно будет выполнять фактический HTTP-запрос на сервер, когда он умрет. Единственный способ, которым я знаю, это остановить этот ответ: http://stackoverflow.com/a/40055510/232629 (TL; DR: отправить в '$ event' из шаблона и вызвать' event.preventDefault(); 'как первое в вашем' ngSubmit') –