Formbuilder与Angular类中的列表绑定,需要多个类成员和验证器
如何将Google Angular Materials列表与FormBuilder绑定?我们有下面的类,并尝试使用反应式formBuilder。 我们知道如何使用NgModel绑定到数据类,但希望绑定到实际的formbuilder。 使用mat选择列表执行此操作的过程是什么Formbuilder与Angular类中的列表绑定,需要多个类成员和验证器,angular,typescript,angular-material,Angular,Typescript,Angular Material,如何将Google Angular Materials列表与FormBuilder绑定?我们有下面的类,并尝试使用反应式formBuilder。 我们知道如何使用NgModel绑定到数据类,但希望绑定到实际的formbuilder。 使用mat选择列表执行此操作的过程是什么 class product{ productId: number; productCode: string; productDescription private formBuilder: For
class product{
productId: number;
productCode: string;
productDescription
private formBuilder: FormBuilder, ) {
products: this.fb.array([])
}
还需要以下验证要求
'product': this.formBuilder.group({
'productId': [null, [Validators.required]],
'productCode': [null, [Validators.required, Validators.maxLength(50)]],
'productDescription': [null, [Validators.required, Validators.maxLength(255)]]
})
<mat-selection-list #productList class = "selectionlist" [(ngModel)]="selectedOptions" (selectionChange)="productChangeEvent($event,productList?.selectedOptions.selected)">
<mat-list-option *ngFor="let product of products">
{{product.productDescription}}
</mat-list-option>
</mat-selection-list>
“产品”:this.formBuilder.group({
“productId:[null,[Validators.required]],
“productCode:[null,[Validators.required,Validators.maxLength(50)],
'productDescription':[null,[Validators.required,Validators.maxLength(255)]]
})
{{product.productDescription}
这是一个多选表单
如果您正试图对此进行研究,您可以参考以下示例。 在您的.ts文件中
testForm: FormGroup;
animals: { name: string; sound: string; }[];
constructor(private fb: FormBuilder){
this.testForm = this.fb.group({
requests: [null]
});
this.animals = [
{ name: 'Dog', sound: 'Woof!' },
{ name: 'Cat', sound: 'Meow!' },
{ name: 'Cow', sound: 'Moo!' },
{ name: 'Fox', sound: 'Wa-pa-pa-pa-pa-pa-pow!' },
];
}
onChange() {
console.log(this.testForm.value.requests);
}
在Html文件上
<form [formGroup]="testForm">
<mat-form-field>
<mat-label>Favorite animal</mat-label>
<mat-select formControlName="requests" required (ngModelChange)="onChange()">
<mat-option>--</mat-option>
<mat-option *ngFor="let animal of animals" [value]="animal">
{{animal.name}}
</mat-option>
</mat-select>
</mat-form-field>
</form>
对于表单验证,您需要在this.testForm=this.fb.group({requests:[null,Validators.required]//像这样})中传递验证;我想数据将来自绑定到下拉列表中的服务,所以,您最好对此下拉列表应用所需的验证。您需要分别为每个表单字段指定验证。对于一个字段上的多个验证,请使用Validators.Compose[]您能详细解释一下您到底想要什么吗?绑定到下拉列表通常不会遵循您的要求。因为,当我们从用户处获取输入并根据我们的数据库表进行验证时,所有这些验证都是必需的。