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

时间:2017-11-21 08:25:55

标签: angular angular2-template angular2-forms

基本上,我有

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

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

2 个答案:

答案 0 :(得分:18)

NgForm的财产ngSubmitEventEmitter。因此,从组件对此属性执行emit()将触发提交。

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

@ViewChild('f') form: NgForm;

form.ngSubmit.emit();

答案 1 :(得分:1)

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

this.formGroup.markAllAsTouched();