2014-07-11 204 views
0

我有一個表使用NG重複,並且它的選擇裏面使用NG選項:infdig錯誤 - AngularJS NG選項與動態創建陣列

<tr ng-repeat="variable in variables"> 
    <td> 
    <textarea ng-model="variable.extras">{{variable.extras}}</textarea> 
    </td> 
    <td> 
    <select ng-model="variable.condition" ng-options="text for text in toplevelTriggerConditions($index)"> 
    </td> 

對於選擇,即toplevelTriggerConditions($index)通話基本上遍歷表的前幾行,查找各種條件,並且如果它們通過抓取前一行的值variable.extras,然後返回基於該行的數組。因此,如果我爲了選擇'一,二,三'而選擇了一個,兩個和三個選項。

在視覺上這似乎工作正常,但我得到了一噸$scope.infdig錯誤。通過谷歌搜索我看到這是因爲與ng選項一起使用的數組是動態的,而不是靜態的,但我不知道如何解決這個問題,因爲數組的值必須動態改變。

希望這是有道理的,我試圖描述。

+0

也許你需要一個指令,將數組所以它不是從'NG-options' – charlietfl

+0

中的一個函數的陣列會動態改變,雖然每當他們修改的「演員」變量返回。我試圖找出如何獲得該變量的手錶,然後我可以將該數組設置爲變量 – Scott

+0

右側的另一個屬性,但如果數組在控制器內發生更改,它應更新DOm,因此選項 – charlietfl

回答

0

我發現了一個符合此描述的記錄錯誤,我認爲建議的修復方法是升級到Angular 1.4。*。

這是問題。 https://github.com/angular/angular.js/issues/9464

這裏是測試該問題的闖關者。 http://plnkr.co/edit/Q4EZDPCyAgUMKoWDPmrE?p=preview

在我的情況下,我爲每個ng選項返回相同的對象,除了在返回它之前將它在函數中排序。 Angular不喜歡這樣,所以我使用了這個SO問題AngularJS ngOptions sort array的角度過濾器。

<tr ng-repeat="phv in placeHolderValues> 
    <td> 
     <select ng-model='phv.placevalueId' 
       ng-options="t.id as t.name for t in valueOptions(phv) | orderBy:'toString()' "> 
     </select> 
    </td> 
</tr>