0

我想从窗体中获取所有错误。 我试图用随Angular documentation附带的活生生的例子,我修改了它加入required到第一场:Angular:myForm.errors代表什么?

createForm() { 
    this.heroForm = this.fb.group({ 
     name: ['', Validators.required], 
     secretLairs: this.fb.array([]), 
     power: '', 
     sidekick: '' 
    }); 
} 

https://plnkr.co/edit/6b1paWOlKtXnDn1VVCyP

正如你所看到的,如果你清空name领域它触发required验证器和control有关的名称字段有错误对象...但errorsmyForm对象的属性仍然是null。为什么?

它不应该包含一个对象,其中包含由子控件的验证器触发的所有错误吗? 那么errors属性代表什么?

回答

1

您将不得不循环浏览表单的控件,并查看它们是否包含错误。我认为你实际上可以在自己的组上拥有验证器,就像你在单个窗体控件上进行验证一样。

+0

是的我知道了,但是这并没有回答我的问题...... – smartmouse

+0

它应该在技术上包含它的兄弟姐妹的错误,但在我的情况下,它也没有这样做。我不知道这是否是有意的行为或错误,但如果您只是想实现收集表单中所有错误的目标,则可以检查[this](https://stackoverflow.com/questions/40680321/get -all-validation-errors-from-angular-2-formgroup)question out – Abdel

+1

我可以证实这是有意的行为,看看[this](https://github.com/angular/angular/issues/11530)问题 – Abdel