如何从组件触发 Angular 2 表单提交?

How to trigger Angular 2 form submit from component?

基本上,我有

<form #f="ngForm" (ngSubmit)="save(f.form)" #formElement>
    ...
    <button class="btn btn-primary" #saveButton>Save</button>
</form>

我希望能够从组件触发 submit()。 我试过 @viewChild('formElement')renderer.invokeElementMethod 触发 click().

NgForm has property ngSubmit which is EventEmitter。因此,从组件对此 属性 执行 emit() 将触发提交。

您还需要使用 f 变量而不是 formElement 因为 f 引用 ngForm.

@ViewChild('f') form: NgForm;

form.ngSubmit.emit();

我正在尝试 ngSubmit.emit() 方法来更新组件中表单字段的验证状态,现在可以通过以下方式完成:

this.formGroup.markAllAsTouched();