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

loc*_*k42 15 angular2-forms angular2-template angular

基本上,我有

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

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

Hri*_*nev 21

NgForm拥有财产ngSubmitEventEmitter.因此emit(),从组件对此属性执行操作将触发提交.

此外,您需要使用您的f变量而不是formElement因为f引用ngForm.

@ViewChild('f') form: NgForm;

form.ngSubmit.emit();
Run Code Online (Sandbox Code Playgroud)


Yas*_*nto 5

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

this.formGroup.markAllAsTouched();
Run Code Online (Sandbox Code Playgroud)