为ngFor中的选择选项设置单个模型值

时间:2017-11-06 09:12:05

标签: angular ngfor

我尝试为*ngFor内的每个选择选项设置模型,但如果我选择任何选项,则所有选项都设置为相同的模型值。

我尝试将模型值更改为[(ngModel)]="data.selectedItem",但添加级别的功能似乎已中断。

HTML:

<div class="row" *ngFor="let data of levels;let index = index">
      <select [(ngModel)]="selectedItem" class="form-control input-sm custom-input-select">
      <option *ngFor="let value of columnValues">{{value}}</option>
      </select>
    </div>

请找到plunker链接here

3 个答案:

答案 0 :(得分:2)

首先,您需要为每个级别设置SelectItem:

 addLevel(){
    let data = {selectedItem:''}
    this.levels.push(data);
  }

然后,当您在* nfFor中对DOM进行管理时,您必须设置trackby选项。

<div .... *ngFor="let data of levels;let index = index; trackBy: trackByFn">

<span (click)="addLevel()">Click to Add level</span>

并绑定模型:

  <select [(ngModel)]="data.selectedItem" ....>

DEMO

答案 1 :(得分:1)

在选项元素中添加值=&#34; {{value}}&#34;

<option *ngFor="let value of columnValues" value="{{value}}">{{value}}
</option>

答案 2 :(得分:1)

在选项标签(DOM绑定)中添加了[vaue] = value

<div class="row" *ngFor="let data of levels;let index = index">
      <select [(ngModel)]="selectedItem" class="form-control input-sm custom-input-select">
      <option *ngFor="let value of columnValues" [value]=value>{{value}}</option>
      </select>
    </div>