2016-08-25 60 views
0

如何在顯示時避免重複的錯誤日誌?AngularJS:在ngOptions時出錯重複

<select class="ea-input" ng-model="details.amount" ng-options="amount as amount for amount in amounts"> 
    <option value="" disabled>{{'prepaid.selectamount.placeholder'|translate}}</option> 
</select> 

這工作,但我不斷收到重複的控制檯錯誤:

angular.js:11496 Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: amount in eaOptions, Duplicate key: number:9999, Duplicate value: 9999

我試圖(從這裏開始)爲ngOptions所有可能的解決方案,但沒有爲我工作。我應該如何採取這種方法?

[編輯]:的$ scope.amounts都是這樣的值: [5,10,15,30,50,100]

[UPDATE]:似乎是與任何沒有問題。我認爲這是一個無關的指令,導致了這一點。在模板上的某個地方,另一個指令是調用相同的ng-model,這是導致它的原因之一。

<span ng-if="paymentDetails.maximizer.length > 0"> 
       <cashier-maximizer-field ea-options="paymentDetails.maximizer" ea-model="details.amount"> 
       </cashier-maximizer-field> 
       <div class="divider sm"></div> 
      </span> 
+0

利用軌跡在NG選項 –

+0

$指數@TarekSalahuddinMahmud '$ index'在ng-options中不可用。 – Fissio

+0

金額變量內的值是多少?你可以創建示例小提琴嗎? –

回答

0

您應該使用選項track by內部角將創建它自己的ID並避免對象中的dupe id問題。

具有以下

ng-options="amount as amount for amount in amounts track by amount.id" 

編輯更改代碼:對不起,我感到困惑與NG-重複指令。你可以稍微改變一下使用軌跡。我假設你有你的金額對象和ID。如有必要,您可以更改另一個屬性的「ID」。在這裏,你有更多的信息

https://docs.angularjs.org/api/ng/directive/ngOptions

+0

這不起作用。而且我在某處讀到這隻適用於'ng-repeat'。 – ralphcarlo

+0

'$ index'在ng-options中不可用。但是,您可以使用「追蹤」表達式並將其分配給每個選項獨有的值。 – Fissio

+0

您可以使用$ id(金額)'追蹤'而不是。 –

0
{{'prepaid.selectamount.placeholder'|translate}} 

正在使問題。沒有它工作正常。

檢查以下

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.details={}; 
 
    $scope.amounts = [5, 10, 15, 30, 50, 100]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 

 
    <select class="ea-input" ng-model="details.amount" ng-options=" amount for amount in amounts "> 
 
    <option value="" disabled>Select</option> 
 
    </select> 
 
    {{selectedName}} 
 
</div>

+0

沒有。也刪除了。錯誤仍然存​​在。 – ralphcarlo

0

代碼試試這個 NG選項= 「量量量」

+0

同樣的問題。不起作用。錯誤仍然存​​在。 – ralphcarlo