如何在角度模板中访问此JSON数据?

时间:2014-07-08 03:03:42

标签: json angularjs

我有点失落。我的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添加曲目,我只会获得一个没有信息的无限子弹列表。

感谢任何帮助。感谢

1 个答案:

答案 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);

}

JsFiddle