如何在显示时防止重复项的错误日志?
<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错误:[ngRepeat:dupes]转发器中的重复项是 不允许。使用&#39;跟踪&#39;表达式以指定唯一键。 Repeater:eaOptions中的数量,重复键:数字:9999,重复 价值:9999
我为ngOptions尝试了所有可能的解决方案(从这里开始),但这对我不起作用。我还应该采取这种方法呢?
[编辑]:$ scope.amounts的值如下: [5,10,15,30,50,100]
[更新]:似乎没有任何问题。我认为这是导致这种情况的非相关指令。在模板的某个地方,另一个指令调用相同的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 :(得分:0)
您应该使用选项轨道,因此内部角度将创建自己的ID,并避免对象中的dupe id问题。
使用以下
更改您的代码ng-options="amount as amount for amount in amounts track by amount.id"
编辑:抱歉,我对ng-repeat指令感到困惑。您可以稍微改变一下使用track。我假设你有你的金额对象和id。你可以改变&#34; id&#34;如有必要,另一个财产。这里有更多信息
答案 1 :(得分: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>
答案 2 :(得分:0)
试试这个 ng-options =&#34;金额金额&#34;