如何将项目数组设置为反应式 formcontrolName
How to set an array of items as reactive formcontrolName
我正在处理一个 angular 应用程序。
我有一个反应形式,定义为
form!: FormGroup<GlobalBean>
在 globalBean 中,我有另一个 bean 的数组
export interface globalBean{
/**
* Version Clé
*/
terms: AnotherBean[];
在前面形式为@Input 的组件中,我有以下模板
<div *ngFor="let term of ######; let index = index;">
<mat-form-field>
<mat-label>{{term.property1}}</mat-label>
<mat-select [formControl]="form"
[formControlName]="######"
[(value)]="term.property2">
<mat-option *ngFor="let ta of list2"
[value]="ta.valeur">{{ ta.libelle }}</mat-option>
</mat-select>
</mat-form-field>
</div>
我不知道如何在以下两个表达式中定义###### :
- "let term of ######;"
- [formControlName]="######"
您可以尝试以下网站供您参考
https://angular.io/guide/dynamic-form
示例:
如果您有 n 个项目,例如 formValues = [{label: 'a',value:'a'},{label: 'b',value:'b'} ,{标签: 'c',值:'c'}]
您需要先用这个创建您的 formGroup
form: FormGroup;
formValues = [{label: 'a',value:'a'},{label: 'b',value:'b'},{label: 'c',value:'c'}]
toFormGroup(arr:any) {
let group={};
arr.forEach((x) => {
group[x.label]=new FormControl(x.value);
});
this.form = new FormGroup(group);
}
这将使用您拥有的动态键创建一个表单组
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div *ngFor="let element of formValues ">
<input type="text" formControlName="{{element.label}}" value="{{element.value}}"/>
</div>
<input type="submit" value="save"/>
</form>
我想这对你有帮助
我正在处理一个 angular 应用程序。
我有一个反应形式,定义为
form!: FormGroup<GlobalBean>
在 globalBean 中,我有另一个 bean 的数组
export interface globalBean{
/**
* Version Clé
*/
terms: AnotherBean[];
在前面形式为@Input 的组件中,我有以下模板
<div *ngFor="let term of ######; let index = index;">
<mat-form-field>
<mat-label>{{term.property1}}</mat-label>
<mat-select [formControl]="form"
[formControlName]="######"
[(value)]="term.property2">
<mat-option *ngFor="let ta of list2"
[value]="ta.valeur">{{ ta.libelle }}</mat-option>
</mat-select>
</mat-form-field>
</div>
我不知道如何在以下两个表达式中定义###### :
- "let term of ######;"
- [formControlName]="######"
您可以尝试以下网站供您参考
https://angular.io/guide/dynamic-form
示例:
如果您有 n 个项目,例如 formValues = [{label: 'a',value:'a'},{label: 'b',value:'b'} ,{标签: 'c',值:'c'}]
您需要先用这个创建您的 formGroup
form: FormGroup;
formValues = [{label: 'a',value:'a'},{label: 'b',value:'b'},{label: 'c',value:'c'}]
toFormGroup(arr:any) {
let group={};
arr.forEach((x) => {
group[x.label]=new FormControl(x.value);
});
this.form = new FormGroup(group);
}
这将使用您拥有的动态键创建一个表单组
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div *ngFor="let element of formValues ">
<input type="text" formControlName="{{element.label}}" value="{{element.value}}"/>
</div>
<input type="submit" value="save"/>
</form>
我想这对你有帮助