我有点失落。我的JSON数据存储在
中$scope.cuisines = data;
如果我是console.log(数据),结果是
"[{\"pk\": 1, \"model\": \"swings.cuisine\", \"fields\": {\"name\": \"Chinese\"}},
{\"pk\": 2, \"model\": \"swings.cuisine\", \"fields\": {\"name\": \"Indian\"}},
{\"pk\": 3, \"model\": \"swings.cuisine\", \"fields\": {\"name\": \"Japanese\"}}]"
如果我尝试
<li ng-repeat='cuisine in cuisines'>{{cuisine.fields.name}}</li>
我得到了
Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: place in places, Duplicate key: string:"
我尝试在这个问题的一些stackoverflow答案中建议添加“track by cuisine.pk”(以及其他变体)。我不断得到同样的错误。如果我按$ index添加曲目,我只会获得一个没有信息的无限子弹列表。
感谢任何帮助。感谢
答案 0 :(得分:1)
由于您获得的data
是字符串格式,因此在将其设置为角度模板之前对其进行解析
<强> JS 强>
var data = "[{\"pk\": 1, \"model\": \"swings.cuisine\", \"fields\": {\"name\": \"Chinese\"}}, {\"pk\": 2, \"model\": \"swings.cuisine\", \"fields\": {\"name\": \"Indian\"}},{\"pk\": 3, \"model\": \"swings.cuisine\", \"fields\": {\"name\": \"Japanese\"}}]";
function ctrl($scope) {
$scope.cuisines = JSON.parse(data);
}