Angular 获取角度中更改事件的选定选项值

Angular 获取角度中更改事件的选定选项值,angular,select,onchange,angular-reactive-forms,option,Angular,Select,Onchange,Angular Reactive Forms,Option,我使用Angular的反应式表单来提交表单数据。我希望能够从我的输入中访问所选的选项值,类似于我当前提交表单时所做的操作 (ngSubmit)="onSubmit(searchForm.value)" 请注意过滤器阵列: 但是,当我进行选择更改时,我无法得到与event.target.value日志3:Object HTML: <div class="col-md-2" *ngFor="let filter of this.filters; index as i" formArrayN

我使用Angular的反应式表单来提交表单数据。我希望能够从我的输入中访问所选的选项值,类似于我当前提交表单时所做的操作

(ngSubmit)="onSubmit(searchForm.value)"
请注意过滤器阵列:

但是,当我进行选择更改时,我无法得到与
event.target.value
日志
3:Object

HTML:

<div class="col-md-2" *ngFor="let filter of this.filters; index as i" formArrayName="filters" >
          <div class="form-group">
            <select [formControlName]="i" (change)="onSelectChange($event.target.value)" size="5" class="form-control" multiple>
              <option [ngValue]="null" value="-1" disabled class="first-option-item">{{ filter.name }}</option>
              <option
                *ngFor="let filterValue of this.filterValues[i].items"
                [ngValue]="{
                  filterHeader: { id: filter.id, value: filter.name },
                  filterSelections: { id: filterValue.id, value: filterValue.name }
                }">
                {{filterValue.name}}
              </option>
            </select>
          </div>
        </div>

{{filter.name}
{{filterValue.name}

我做错了什么?

我建议您将所选值存储在一个额外的变量中。并在模板中使用
[(value)]
绑定,但目前我不确定这是否适用于本机select。我把这个和我的朋友一起用


{{filter.name}
{{filterValue.name}
另一个解决方案是将
[(ngModel)]
(ngModelChange)=“yourfunction”
一起使用,这可能会有所帮助


我成功地将所选选项的值添加到select元素中(ngModelChange)并为选项添加[ngValue]。也没有必要添加[(ngModel)]


{{filter.name}
{{filterValue.name}

您可以创建stackblitz吗?如果您只使用
$event
获取所选值,我建议将该值直接绑定到
[(ngModel)]
,这将使您的代码更具可读性。