鍍金池/ 問答/HTML5/ Angular2/5表單校驗(yàn)問題?

Angular2/5表單校驗(yàn)問題?

我想做一個(gè)表單校驗(yàn),這樣的時(shí)候是可以工作的:
圖片描述
但是加上flag條件之后就會(huì)報(bào)錯(cuò):
圖片描述

Cannot read property 'invalid' of undefined
at Object.eval [as updateDirectives] (EditMemberComponent.html:9)

我判斷是加上flag條件之后name的屬性就不自動(dòng)生成的原因,可以還不想在component中手動(dòng)的new FormControl,感覺太麻煩了

請問該如何解決

回答
編輯回答
懶洋洋

很久沒搞angular了,簡單答一下。
你在下面的代碼里加了if條件,然后就報(bào)錯(cuò)了。原因是name沒有invalid屬性,angular里ngif條件為true會(huì)在瀏覽器里生成dom元素,false則不生成。只有在頁面上有dom了才能使用#name獲取到他的元素引用。所以這個(gè)地方#name="ngModel"是不存在的。那么他的invalid和dirty屬性就是undefined了。你可以寫成!flag && name?.invalid這樣試試

2017年12月10日 19:32