2017-07-26 99 views
0

這個例子中的ngModel正在查殺我的瀏覽器。 任何想法如何獲得每個表格單元的ng模型? (我試圖用(變化),和它的工作 - 但改變了選擇的值)ngModel in select tag - inside ngFor

<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> 
+0

您能否讓您的問題更清楚? – monica

+0

你想要什麼? – k11k2

+0

抱歉不清楚。我有一個由ngFor運行的表,每列都是dropDown(從外部數組中選擇)。在這種情況下,我不知道如何處理ngModle。我也嘗試爲每個選擇使用(更改)功能 - 在這兩種情況下,我的瀏覽器都有內存問題,而控制檯中沒有任何錯誤。我使用角4.0.0和ts。 – itaiif

回答

2

編輯:

根據您的要求,你也可以一個新的屬性中添加對象的現有陣列,其存儲從下拉到每個對象的值,是這樣的:

<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

+0

你的解決方案沒有爲我工作。我會在這裏發佈我的代碼.. – itaiif

+0

而不是發佈您的代碼作爲答案,編輯您的問題。你有**那麼多的代碼,我不會去嘗試尋找問題。幫助我幫助你,爲你的問題創建一個最小的表示https://stackoverflow.com/help/mcve如果可能的話,讓我可以合作的重拳 – Alex