2016-05-14 120 views
1

我有以下結構父類可以有多個孩子和孩子會有目的。我需要在可編輯表格中顯示此內容,但是當我在輸入目標中綁定模型時,它會更新所有其他選擇的孩子的目標。ng模型ng-repeat-ng中的ng-repeat

這裏是 code

從兩個行的選項中選擇相同的兒童,並對其進行編輯將在其他行的反映,以及一個兒童的目標。

<tbody> 
     <tr ng-repeat-start="parent in records" ng-class-even="'striped'"> 
      <!--KPI--> 
      <td><strong>{{parent.name}}</strong></td> 
      <!-- controls --> 
      <td tool-tips class="inputs"> 
       <select 
         ng-model="parent.childrens" 
         ng-options="item as item.name for item in controlTypes" 
         multiple='multiple'> 
       </select> 
      </td> 
      <!-- Controls objective--> 
      <td colspan="1"/> 
      </td> 
     </tr> 
     <tr ng-if="parent.childrens.length>0" 
      ng-repeat="child in parent.childrens"> 
      <td name="process" colspan="2" style="word-wrap:break-all;" align="right">{{child.name}} 
      </td> 
      <!-- Controls objective--> 
      <td> 
       <input type="text" class="ultra-short" ng-model="child.objective" 
         maxlength="200"/> 
      </td> 

     </tr> 
     <tr ng-repeat-end></tr> 
     </tbody> 

請任何幫助。

回答

1

據我可以告訴它無法使用這樣的結構,因爲你所做的只是與參考工作。當您更改某些選項objective屬性時,實際上您在相同選項中隨處更改它,因爲您正在參考。

UPDATE:
One way來處理這個

+0

解決這種情況的正確方法是什麼?我已經使用@Nikhilish K V解決方案。不知道什麼是$ rootIndex,但是它在父類中創建了一個未定義的屬性,我可以使用paren [parentIndex] .undefined.childrens [index] .objective來訪問子節點。絕對不是解決方案,而是緊急時刻使用。 – veshu

+0

雖然它(雙向綁定)與嵌套的ng-repeat一起使用,但是它只是ng-repeat-start的問題嗎? – veshu

0

如果您希望模型是對NG-每次循環不同:

<div ng-repeat="parent in parents"> 
    <select 
    ng-model="vm.model.parent.item" 
    ng-options="item as item.name for item in controlTypes" 
    multiple="multiple"> 
    </select> 
</div> 

現在你有一個不同的模型,每個迭代,這就是你正在尋找呢?

+0

你在兩個行選擇的選項,並嘗試編輯的目標。問題不在於選擇,我希望孩子的目標是在對應的父母中設置 – veshu