“不允许在中继器中重复"在 ng-repeat 上 [英] "Duplicates in a repeater are not allowed" on ng-repeat
本文介绍了“不允许在中继器中重复"在 ng-repeat 上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从服务请求返回了以下 json 数据:
I've got the following json data returned from a service request:
{
"entries": [{
"id": 2081,
"name": "BM",
"niceName": "bodmas"
}]
}, {
"id": 8029,
"name": "Mas",
"niceName": "Masm"
}]
}],
"count": 2
}
我正在尝试在 html 中使用以下代码来遍历此数据:
And I am trying the following code in html to loop through this data:
<option ng-repeat="entry in entries" value="{{entry.name}}">{{entry.name}}</option>
运行代码时出现以下错误:
I get the following error when I run the code:
Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: entry in entries, Duplicate key: string:c
以下是我的控制器的代码:
Following is the code for my controller:
myApp.controller("MyController", ['$scope', '$http', '$log', function($scope, $http, $log){
...
$http.get('https://myServiceURL').success(function(data){
$scope.entries = data;
});
}]);
有人能帮我理解为什么我会收到这个错误吗?
Could somebody help me understand why am I getting that error?
推荐答案
您的 JSON 无效,应该是:
Your JSON is invalid and should be :
{
"entries": [{
"id": 2081,
"name": "BM",
"niceName": "bodmas"
}, {
"id": 8029,
"name": "Mas",
"niceName": "Masm"
}],
"count": 2
}
另外,请确保您在正确的级别访问文档,使用:
Also, make sure you are accessing the document at the right level, use :
$http.get('https://myServiceURL').success(function(data){
$scope.entries = data.entries;
});
然后,它应该可以工作.请参阅此 JSBin.
Then, it should work. See this JSBin.
这篇关于“不允许在中继器中重复"在 ng-repeat 上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文