表单生成与hasError()进行验证抛出错误类型错误的错误:无法读取未定义
问题描述:
你好我在执行中component.ts使用表单生成表单生成与hasError()进行验证抛出错误类型错误的错误:无法读取未定义
在角2形式我已经实现的特性“hasError”我使用formGroup
形式下面是我的代码
public myForm: FormGroup;
constructor(private authenticateservice: AuthenticateService,
private _fb: FormBuilder
) {
}
ngOnInit() {
this.myForm = this._fb.group({
address: [this.userDetails.address, [<any>Validators.required]],
address2: ['', [<any>Validators.required]],
city: ['', [<any>Validators.required]],
company_address: ['', [<any>Validators.required]],
company_address2: ['', [<any>Validators.required]],
company_city: ['', [<any>Validators.required]],
company_country: ['', [<any>Validators.required]],
company: ['', [<any>Validators.required , Validators.minLength(3)] ],
company_tax_number: ['', [<any>Validators.required]],
company_zip: ['', [<any>Validators.required, Validators.minLength(5) , Validators.maxLength(7)]],
country: ['', [<any>Validators.required]],
email: ['', [<any>Validators.required, Validators.email]],
first_name: [this.userDetails.first_name, [<any>Validators.required]],
id: ['', [<any>Validators.required]],
last_name: ['', [<any>Validators.required]],
phone: ['', [<any>Validators.required, Validators.minLength(10)]],
zip: ['', [<any>Validators.required , Validators.minLength(5) , Validators.maxLength(7)]],
user_type: ['2', [<any>Validators.required]],
terms: [0, [<any>Validators.required]],
hash_tag: [''],
});
}
这是工作的罚款。但未来在前端显示验证时
我用这样的
<div class="form-group row">
<div class="col-lg-8">
<label>Address 2</label>
<textarea class="form-control" placeholder="Address" rows="2" [readonly]="disabled" id="companyaddress2" formControlName="company_address2"></textarea>
<span class="help-block form-error text-danger small" *ngIf="myForm.controls['company_address2'].hasError('required')">Company Address 2 is Required.</span>
</div>
</div>
这是工作,但引发错误控制台类似下面
错误类型错误:无法读取的未定义的属性“hasError”
请帮我一下如何排序。
谢谢。
答
你应该使用这样的:
<span class="help-block form-error text-danger small"
*ngIf="myForm.controls['company_address2'].errors?.required &&
myForm.controls['company_address2'].touched">Company Address 2 is Required </span>
可选的值是什么帮助了我。我的方法有点不同,我使用control?.hasError(“someError”)。谢谢! – kbpontius