2016-05-31 59 views
0

我有一個動態添加項到作爲ng重複模型的數組的問題。對ng重複數組的角度添加項

的plunker是在這裏:http://plnkr.co/edit/W4b34EDR8dP7ems7aFRV?p=preview

我有錶行的列表。在每一行中都有一個選擇框,其內容對於每一行都是相同的。對於select的ng模型只不過是作爲第一個ng-repeat中的項目的字符串(它很難解釋,而不是僅僅看一下這個笨蛋!)

我的問題是當我點擊按鈕添加一行。請按照下列步驟操作:

  1. 單擊「添加階段」。新行將出現一個空白值
  2. 在新行中選擇一些東西
  3. 再次單擊「添加階段」。

添加新行,但是從第3行中清除選擇。爲什麼會發生這種情況,我該如何避免它?當然,我試圖谷歌,但它是一個很難找到谷歌的話。

下面是一些代碼:

<tr ng-repeat="phase in phases track by $index"> 
     <td>{{$index + 1}}</td> 
     <td><select ng-model='phase'> 
       <option ng-repeat="item in availablePhases" ng-value="item">{{item}}</option> 
      </select> 
     </td> 
    </tr> 

而且控制器:

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.phases = ['Phase 1', 'Phase 2']; 
    $scope.availablePhases = ['Phase 0', 'Phase 1', 'Phase 2', 'Phase 3']; 

    $scope.add = function() { 
    $scope.phases.push(''); 
    } 
}); 

謝謝!

回答

2

你給所有的值相同model,所以當你更新一個你更新他們。我不知道爲什麼它沒有改變前兩個。爲了得到它的工作只是改變

<select ng-model='phase'>

<select ng-model='phases[$index]'>

+0

有趣。我錯誤地認爲「分階段......」意味着我可以使用「階段」作爲循環變量,有點像「for(String s:allStrings)...」。非常感謝你的回答! – Stephanie

+0

我這是我錯了原因。我實際上認爲,「階段」是ng-repeat中的一個臨時參考,當範圍刷新時,參考丟失了,但這仍然不能解釋爲什麼前兩個從未改變。 – mvndaai