Angular dumb(presentation)组件上的被动表单提交两次

Angular dumb(presentation)组件上的被动表单提交两次,angular,eventemitter,angular-reactive-forms,Angular,Eventemitter,Angular Reactive Forms,我有一个smart and dumb组件,我的表单在事件发射器上提交了两次。这件事我已经谈了好几天了,还没弄明白 我试图把我所有的逻辑都保存在智能组件中。此外,欢迎对这种模式的最佳实践提出批评 这是我的stackblitz,如果您有任何想法,请申请并发布: 我认为(submit)事件已经在Angular中定义,它会触发两次。 由于事件名称“submit”,表单被提交两次,这是Angular中的默认事件名称,无论您定义的事件处理程序是什么,表单都会在(ngSubmit)上被调用 要删除重复提交,请

我有一个smart and dumb组件,我的表单在事件发射器上提交了两次。这件事我已经谈了好几天了,还没弄明白

我试图把我所有的逻辑都保存在智能组件中。此外,欢迎对这种模式的最佳实践提出批评

这是我的stackblitz,如果您有任何想法,请申请并发布:

我认为(submit)事件已经在Angular中定义,它会触发两次。

由于事件名称“submit”,表单被提交两次,这是Angular中的默认事件名称,无论您定义的事件处理程序是什么,表单都会在(ngSubmit)上被调用

要删除重复提交,请将事件名称更改为“submit2”,例如,它将只提交一次:

app dumb.html:

<form [formGroup]="myForm" (ngSubmit)="submit2.emit(myForm)">
    name:
    <input type="text" formControlName="name">
    <button>
      submit
    </button>
</form>
  @Output() submit2: EventEmitter<FormGroup> = new EventEmitter<FormGroup>();

姓名:
提交
应用程序dumb.ts:

<form [formGroup]="myForm" (ngSubmit)="submit2.emit(myForm)">
    name:
    <input type="text" formControlName="name">
    <button>
      submit
    </button>
</form>
  @Output() submit2: EventEmitter<FormGroup> = new EventEmitter<FormGroup>();
@Output()submit2:EventEmitter=neweventemitter();
演示:


啊,谢谢你。我知道这一定是很普通的东西,只是在网上找不到而已。伙计。这么简单,我没有意识到这是一个关键字函数。谢谢@rotemx!