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