如何确定将填充哪个下拉列表?

时间:2017-08-01 14:02:12

标签: angular

<div *ngFor="let filterItem of fields[0].searchParameters;  let i = index" class="custom">
    <label>{{filterItem.fieldlabel}}</label>
    <div class="form-group">
        <span [ngSwitch]="filterItem.fieldtype">
            <input ngDefaultControl [focusOnInit]="i"  *ngSwitchCase="'INPUT'" [ngModel]="selectedDevice" [ngModelOptions]="{standalone: true}" class="form-control-full" (change)="changeFilterValue(filterItem.value1)" (keydown)="keyDownFunction($event)"/>
             <select *ngSwitchCase="'LOV'"  class="form-control custom-select" type="text" [(ngModel)]="filterItem.value1" [ngModelOptions]="{standalone: true}" (change)="changeFilterValue(filterItem)">
                <option value="" ></option>
                <option *ngFor="let value of filterItem.values" [(value)]="value.code" required>{{value.displayName}}</option>
            </select> 

             <select *ngSwitchCase="'LOVD'"  class="form-control custom-select" type="text" [(ngModel)]="filterItem.value1" [ngModelOptions]="{standalone: true}" (change)="changeFilterValue(filterItem)">
                <option value="" ></option>
                <option [hidden]="filterItem.defaultvalue1!=selectedLabel" *ngFor="let value of filterItem.values" [(value)]="value.code" required>{{value.displayName}}</option>
            </select> 
        </span></div></div>

现在我有方法:

  changeFilterValue(value: any) {
    this.selectedLabel = value.fieldlabel;
    console.log('selected label',this.selectedLabel);
    //this.selectFilterEmit.emit(this.selectedFilter);
  }

但我不知道我改变了什么下拉菜单。有什么建议我怎么能检测出来?

2 个答案:

答案 0 :(得分:1)

您可以传入方法调用

中的下拉列表
(change)="changeFilterValue(filterItem, dropdownId)"

并根据您的方法

进行切换
changeFilterValue(value: any, dropdownId: int) {
  switch(dropdownId) {
    case 0:
      // do for dropdown with ID 0
      break;
    default:
      // do for default
      break;
  }
}

如果您只想发出哪个下拉列表,则不需要切换,只需将ID(或任何您想要传递的标识参数)传递给需要它的代码部分。

答案 1 :(得分:0)

我建议你为两个不同的下拉菜单提供两种不同的功能。