Angular 2:如何获取动态下拉列表的值

时间:2018-03-13 11:11:48

标签: html angular typescript

我根据响应数据

创建了动态下拉列表

控制台响应:

   Array(3)
    0:
    val_id:1
    role_id:1
    id:1
    is_optional:false
    is_text:false


    1:
    val_id:1
    role_id:1
    id: 2
    is_optional:false
    is_text:false


    2:
    val_id:1
    role_id:1
    id :3
    is_optional: false
    is_text: false

我从上面的回复中得到三次下拉

  <div *ngIf="response != null">
       <p class="">Questions</p>
           <div *ngFor="let question of response" (ngModel)= "questions">
           <select class="dropdown" (click)="OnclickCall(questions)">
              <option> some text </option>
              <option> some text </option>
            </select>
      </div>
</div>

我尝试使用上面的代码但无法获取值,我应该如何获得第3个下拉列表的值,其中id为3 onclick下拉列表,以便我可以传递值并获取选项的响应。 请帮帮我。

2 个答案:

答案 0 :(得分:0)

您可以在选项本身上设置onclick功能,并将变量设置为所选选项

<option (click)="onSelectOption(i)"> some text </option>
/// and i here is the index of the option in array

<强> Component.ts

export default class Component {
    mySelectedOption;
    optionsArray;  

    onSelectOption(i) {
       this.mySelectedOption = this.optionsArray[i];
    }
}

答案 1 :(得分:0)

如果我的问题正确,那么您可以通过以下示例

完成
<div *ngFor="let question of response;">
   <select class="dropdown" (click)="OnclickCall(question)">
      <option *ngFor="let v of values"> Some text</option>
   </select>
</div>

在您的组件中:

public values:any=[];
OnclickCall(question){
    // question.id that you need to use to get data
    this.values= data; //set options data that you got using question id
}