1

此示例中的 ngModel 正在杀死我的浏览器。任何想法如何获得每个表格单元格 ng-model?(我尝试使用(更改),它有效 - 但更改了所选值)

<tr *ngFor="let step of procSteps; let i = index;  let first = first; let last = 
                                      last; let even = even; let odd = odd;">

                <td> <p>{{step.position}}</p> </td>

                <td> <p>{{step.name}}</p> </td>

                <td>
                    <select [(ngModel)]="selectedSystemStep[i]">
                        <option *ngFor="let system of systemModuleList" 
                                [value]="system.id">{{system.name}}</option>
                    </select>
                </td> 
</tr>
4

1 回答 1

5

编辑:

根据您的要求,您还可以向现有数组中的对象添加一个新属性,该属性将下拉列表中的值存储到每个对象,例如:

<tr *ngFor="let step of procSteps; let i = index">
  <td> <p>{{step.position}}</p> </td>
  <td>
    <select [(ngModel)]="step.newProp">
      <option *ngFor="let system of systemModuleList" 
        [value]="system.id">{{system.name}}</option>
      </select>
  </td> 
</tr>

上述和以下解决方案的演示:http ://plnkr.co/edit/24rEpkTYKcXvMUMAyU2B?p=preview


原始答案:

存储 id 的辅助数组怎么样?

idArr = []

在模板中我们使用迭代的索引items并将其存储obj.id到相应的索引中:

<div *ngFor="let item of items; let i = index">  
  <select [(ngModel)]="idArr[i]">  
    <option *ngFor="let obj of objects" [value]="obj.id">{{obj.name}}</option>  
 </select>  
</div> 

现在你已经将所有的 id 整齐地存储在idArr.

于 2017-07-26T18:03:32.523 回答