2017-08-01 13 views
-1
<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); 
    } 

をしかし、私は変更何ドロップダウン知りません。どのように私はそれを検出することができますどのような提案?

答えて

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(または識別パラメータとして渡すもの)をコードを必要とする部分に渡すことができます。

+0

thats次に固定データです。データベースにレコードを追加すると、フロントエンドやその他のケースを変更する必要があります – None

+0

答えが難しいと思われるアプリケーションについて詳しく知りません。スイッチを使用するには、ドロップダウン識別子を処理する別のものに渡すか、API呼び出しのオブジェクト/フィールドのフィールドとして使用します。これを処理する方法を知るには詳細を提供する必要があります。 – 0mpurdy

+0

すべてのドロップダウンを表示するにはngForを使用してデータベースとIMで設定します。それらのいくつかは他人に依存している。だから、私は他のものに依存するいくつかのドロップダウンを教えて、最初のものを選んだときにそれを設定したい。それは今何よりも明確ですか?すべて同じngForを使用していますが、異なるデータを表示しています。なぜそれが何に依存しているのかを知る必要があるのです。 – None

0

2つの異なるドロップダウンに2つの異なる機能があることをお勧めします。

関連する問題