Angular从TypeScript提交表单

时间:2018-10-25 23:48:59

标签: angular

我想从TypeScript提交表单。我有一些表单验证指令,可以监听表单上的Submit事件,因此我需要提交表单,而不仅仅是从ngForm的事件发射器中发出。

到目前为止,我唯一想到的就是单击“提交”按钮,但是感觉很脏。

(document.querySelector('button[type="submit"]') as HTMLElement).click();

有人对提交本机表单元素还有其他建议吗?

2 个答案:

答案 0 :(得分:0)

要回答我自己的问题,我更改了我的焦点优先无效指令的工作方式。该指令侦听表单上的Submit事件,并查找所有ng无效的类,然后将第一个集中(如果有)。

我将指令从侦听提交事件更改为

@HostListener('submit', ['$event'])
onSubmit(event) {

注入ngForm对象并订阅Submit事件发射器。

constructor(form: NgForm, el: ElementRef) {
    this.subscription = form.ngSubmit.subscribe(_ => {
        this.onSubmit(el.nativeElement);
    });
}

现在,该指令在Angular ngForm对象提交时触发,而我不必担心本地DOM事件。

答案 1 :(得分:-2)

不建议在angular应用中使用查询。您可以使用ViewChild来获取表单元素。