私はangular2でフォーム検証を書いています。 私のエラーがCannot read property 'valid' of undefined
角度2でのフォーム検証
私のHTMLファイルは、私がdiv [hidden]="author.valid"
でエラーを取得していますすなわち
<form id="commentform" class="comment-form" novalidate
[ngFormModel] = "contact" (ngSubmit)="submit(contact.value)">
<div class="form-input">
<input type="text" id="author" name="author" placeholder="Name *" value=""
[ngFormControl] = "contact.controls['author']" pattern="[a-zA-Z ]*"/>
<div [hidden]="author.valid">Name is required
</div>
</div>
フォームが含まれています。著者は変数ではないので エラーが私のコンポーネントファイルが
import {FormBuilder ,ControlGroup,Validators } from '@angular/common';
@Component({
selector: 'my-contact',
templateUrl : 'app/contact.html'
}
export class ContactComponent {
contact : ControlGroup;
constructor(private _OnChange:OnChange,private _formBuilder : FormBuilder){
this.ngAfterViewInit();
}
ngOnInit() : any{
this.contact = this._formBuilder.group({
'author' : ['',Validators.required] }); }
submit(){
console.log(JSON.stringify(this.contact.value));
}
なぜですか?違いは何ですか?参考資料は? – dakab
'' [hidden] = "author.valid" 'を作るために' '#author =" ngForm "'を ''に追加する必要があります。代わりに、変数 'author = new Control( ''、[Validators.required]);を作成し、これを' this._formBuilder.group({'author':this.author}) 'に追加して、ビューバインディングも同様に機能するはずです。また、新しいフォームモジュールに移行することをお勧めします。すでに交換されているものを学習する時間を投資することはできません。 –