[英]Why I get error in validation form in angular?
我创建了一个 Angular 表单,我想验证输入。 此行应验证地址:
<span *ngIf='submitted && f.caddress.errors' class="invalid-feedback">Customer address is required!</span>
但我想出了这个错误:
属性 'caddress' 来自索引签名,因此必须使用 ['caddress'] 访问它。
这是.ts 文件:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormControl, Validators } from '@angular/forms';
import { FormGroup } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'app-customer',
templateUrl: './customer.component.html',
styleUrls: ['./customer.component.css']
})
export class CustomerComponent implements OnInit {
customerForm!:FormGroup;
submitted =false;
constructor(
private formbuilder:FormBuilder,
private route: ActivatedRoute,
private router:Router
) { }
ngOnInit(): void {
this.onSubmit();}
onSubmit() {
this.customerForm = this.formbuilder.group({
uname : ['', Validators.required],
cphone : ['', Validators.required],
caddress : ['', Validators.required]
})
}
get f(){
return this.customerForm.controls
}
submitCustomer(){
this.submitted = true;
if (this.customerForm.invalid){
return;
}
}
}
该错误说明了您想要做什么。 你需要使用f[caddress].errors.required
而不是f.caddress.errors
FromGroup
控件内部如下所示,
controls: {
[key: string]: AbstractControl;
};
因此,当您引用formControlName
时,您需要使用this.customerForm.controls[caddress]
或this.customerForm.get('caddress')
你可以检查这样的错误this.customerForm.get('caddress').error.required
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.