【发布时间】:2020-06-15 20:31:21
【问题描述】:
我有以下表单,其中包含多个选择输入
<form [formGroup]="searchForm" (ngSubmit)="onSubmit(searchForm.value)">
<div class="col-md-2" *ngFor="let filter of this.filters; index as i">
<div class="form-group">
<select formArrayName="filters" size="5" class="form-control" (change)="onSelectChange($event)">
<option [ngValue]="null" value="-1" disabled class="first-option-item">{{ filter.name }}</option>
<option
*ngFor="let filterValue of this.filterValues[i].items"
[ngValue]="filterValue">
{{ filterValue.name }}
</option>
</select>
</div>
</div>
</form>
反应式初始化:
this.searchForm = this.formBuilder.group({
searchString: ['', Validators.required],
filters: this.formBuilder.array([ ])
});
但是,当我提交表单时,过滤器数组上没有任何值
此外,当我在我的(更改)方法上记录 e.target.value 时,我只得到选定的选项值。我想访问完整的对象,即{ id: 1, name: 'first_filter' }。我不需要完整的对象,以便我可以以某种方式将它返回给 FormGroup 吗?
【问题讨论】:
-
您能说明过滤器是如何添加的吗
-
this.preferencesService.getAllFilters().subscribe((res: any) => { this.filters = res.filters; this.filterValues = res.filter_items;})
标签: arrays angular select angular-reactive-forms option