gpt4 book ai didi

angular - ngSubmit.emit() 不会改变 formGroup 的提交属性

转载 作者:行者123 更新时间:2023-12-04 17:39:14 29 4
gpt4 key购买 nike

我有两个表单,它们在提交时触发验证,然后才显示给用户。但是,我需要同时在两个表单上触发此提交,以便显示需要填写的字段。

现在我有类似的东西

<form [formGroup]="formGroup" #myForm="ngForm" ngForm (ngSubmit)="onSubmit()" *ngIf="formAssemblyCompleted; else loader>
...
</form>

<form [formGroup]="form2" class="mb-5">
</form>

<button class="btn btn_orange" type="submit (click)="myForm.ngSubmit.emit(true)">
Submit
</button>

并在组件中
@ViewChild('myForm') myForm: NgForm;

绑定(bind)到 ngSubmit 的函数被正常调用,但是 submitted属性(property)在 myForm不会将其状态更改为 true

最佳答案

这个问题很久以前就完成了,但我有答案。 myForm.ngSubmit.emit(true)只会触发 EventEmitter 来调用传递给 (ngSubmit)="onSubmit()" 的函数.查看代码,我注意到该函数变成了 submitted正确的是 onSubmit($event) .它还会发出 ngSubmit .这是代码的摘录。

onSubmit($event: Event): boolean {
(this as {submitted: boolean}).submitted = true;
syncPendingControls(this.form, this._directives);
this.ngSubmit.emit($event);
return false;
}
https://github.com/angular/angular/blob/9.1.11/packages/forms/src/directives/ng_form.ts#L288-L301
所以在你的情况下,你需要这样做:
<button class="btn btn_orange" type="submit (click)="myForm.onSubmit($event)">
Submit
</button>

关于angular - ngSubmit.emit() 不会改变 formGroup 的提交属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55275797/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com