在Angular 2中提交vs ngSubmit

ref*_*tor 38 angular

为了在Angular 2中提交表单,我们可以使用表单的"submit"或"ngSubmit"事件.

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

<form #frm="ngForm" (ngSubmit)="add(frm.value)">
  ...
</form>
Run Code Online (Sandbox Code Playgroud)

想知道两者的区别是什么?

Tie*_*han 26

从本教程,https://blog.thoughtram.io/angular/2016/03/21/template-driven-forms-in-angular-2.html

但是,ngSubmit确保在处理程序代码抛出时(这是提交的默认行为)不会提交表单,并导致实际的http post请求.让我们使用ngSubmit,因为这是最好的做法:

  • 如果我在我的ngSubmit调用的函数中添加了一条throw new Error('rekt');行,则使用angular@4.0.1,它死后仍会向服务器发出实际的http请求。我现在知道立即停止此操作的唯一方法是遵循以下答案:http://stackoverflow.com/a/40055510/232629(TL; DR:从模板中发送$ event,然后调用event.preventDefault ();`作为您的ngSubmit`中的第一件事) (3认同)