Angular 我的表单无效,但我的(ngSubmit)正在调用该函数

Angular 我的表单无效,但我的(ngSubmit)正在调用该函数,angular,Angular,我有一个formGroup,里面有一个submit按钮: <form [formGroup]="myGroup" (ngSubmit)="submitForm()"> <input type="text" formControlName="name"> <button type="submit">Submit</button> </

我有一个formGroup,里面有一个submit按钮:

<form [formGroup]="myGroup" (ngSubmit)="submitForm()">
   <input type="text" formControlName="name">
   <button type="submit">Submit</button>
</form>
当我没有填写输入并单击按钮时,我的组件正在调用
submitForm()
。 我放置了一个
console.log(myGroup.valid)
,它是
false
,但仍然调用
(ngSubmit)
事件。
我还有其他组件,当表单无效时,当用户单击submit按钮时,我不会自动调用submit函数。 我不知道我是否忘记了做这个自动检查,或者我真的需要在我的提交函数中做一些事情,比如:

if(this.myGroup.valid) {}

不要从启用的按钮开始,我更喜欢在验证良好之前不显示任何按钮

您可以像这样连接更改侦听器:

fromGroup.changes(changes=>{
  if (changes=="VALID"){ showMyButton(); }
})

如果表单无效,那么禁用submit按钮如何?或者使用
[disabled]=“!myGroup.valid”
禁用按钮,或者在
submitForm()中检查表单是否有效看起来不错,但我仍然好奇这在某些组件中是如何工作的,而在其他组件中,当表单无效时调用submit函数,您可以尝试将控件初始化为
newformcontrol('',{validators:validators.required,updateOn:'change'})
,但如果它在某些组件中工作,而在某些组件中不工作,那就很奇怪了。无论哪种方式,如果表单无效,禁用按钮都是一种好的做法,所以我会这样做
fromGroup.changes(changes=>{
  if (changes=="VALID"){ showMyButton(); }
})