我试图在不填写选择内容的情况下应用验证器,但是我得到了
”无法分配给“ formControlAnimalSelect”上的属性“ validator”: 不是对象”
我尝试:
TS:
formControlAnimalSelect = new FormControl('valid', [
Validators.required,
Validators.pattern('valid'),
])
ngOnInit() {
this.secondFormGroup = this._formBuilder.group({
formControlAnimalSelect:['',Validators.required]
});
HTML:
<form [formGroup]="secondFormGroup">
<div class="formSegundoGrupo">
<mat-form-field>
<mat-select name="selectAnimals" formControl="formControlAnimalSelect" placeholder="Eu perdi um...">
<mat-option value="gato">
Gato
</mat-option>
<mat-option value="cahorro">
Cachorro
</mat-option>
<mat-option value="coelho">
Coelho
</mat-option>
<mat-option value="tartaruga">
Tartaruga
</mat-option>
</mat-select>
<mat-error *ngIf="selectAnimal.hasError('required')">Você precisa selecionar ao menos um pet!</mat-error>
</mat-form-field>
</div>
</form>
答案 0 :(得分:1)
问题是您以两种不同的方式实现了一件事。
情况1:如果要使用,请仅使用控件
formControlAnimalSelect = new FormControl('valid', [
Validators.required,
Validators.pattern('valid'),
])
ngOnInit() {
/* Remove this code
this.secondFormGroup = this._formBuilder.group({
formControlAnimalSelect:['',Validators.required]
});*/
}
<mat-select name="selectAnimals"
[formControl]="formControlAnimalSelect" placeholder="Eu perdi um...">
案例2:如果您想将控件与表格一起使用
/* remove this code
formControlAnimalSelect = new FormControl('valid', [
Validators.required,
Validators.pattern('valid'),
])
*/
ngOnInit() {
this.secondFormGroup = this._formBuilder.group({
formControlAnimalSelect:['',Validators.required]
});
<mat-select name="selectAnimals"
formControlName="formControlAnimalSelect" placeholder="Eu perdi um...">
答案 1 :(得分:0)
使用formControlName
指令代替formControl
。
formControlName="formControlAnimalSelect"
我不确定为什么在一开始就定义formControlAnimalSelect
:(实际上,由于您需要将其作为formGroup secondFormGroup
的一部分,因此可以像下面这样轻松地更改formControl
初始化。
this.secondFormGroup = this._formBuilder.group({
formControlAnimalSelect: new FormControl('valid', [
Validators.required,
Validators.pattern('valid'),
])
});
对于错误处理,您可以使用
*ngIf="secondFormGroup.get('formControlAnimalSelect').hasError('required')"
答案 2 :(得分:0)
对我来说,这就是我所拥有的,它给了我同样的错误:
<form formGroup="productCreateForm" (ngSubmit)="onSubmit()">
将其更改为此并起作用:
<form [formGroup]="productCreateForm" (ngSubmit)="onSubmit()">