我正在使用AngularJs
来阅读iTunes API
。我想在<entry>
得到所有结果,但到目前为止我只得到第一个结果:
<div class="container" ng-controller="appController">
<div class="item" ng-repeat="chart in charts">
<h2>{{chart.entry[$index]['im:name'].label}}</h2>
</div>
结果是来自im:name
的{{1}};当我用一个数字替换entry[0]
时,我也得到了结果,所以很明显一切都很好。
控制器:
$index
加载JSON文件:
app.controller('appController', ['$scope', 'charts', function($scope, charts) {
charts.success(function(data) {
$scope.charts = data;
});
}]);
答案 0 :(得分:2)
根据你的JSON结构,你试图遍历charts
,但它不是一个数组,它只是一个带有一个名为entry
的数组的对象,它包含所有条目。所以你应该改变你的
<div class="item" ng-repeat="chart in charts">
<h2>{{chart.entry[$index]['im:name'].label}}</h2>
</div>
到
<div class="item" ng-repeat="entry in charts.feed.entry">
<h2>{{entry ['im:name'].label}}</h2>
</div>
答案 1 :(得分:2)
我想你想重复一下chart.feed.entry。
<div class="item" ng-repeat="entry in charts.feed.entry">
<h2>{{entry['im:name'].label}}</h2>
</div>
编辑:解释为什么这是chart.feed.entry而不是charts.entry。从问题:
<div class="item" ng-repeat="chart in charts">
这循环通过图表,因为它是一个对象而不是一个数组,意味着循环其属性。只有一个,所以有一个迭代,它将单个属性feed分配给图表。因此:
chart.entry[$index]['im:name'].label
相当于:
charts.feed.entry[$index]['im:name'].label
答案 2 :(得分:1)
尝试将其更改为
<div class="container" ng-controller="appController">
<div class="item" ng-repeat="chart in charts">
<div class="item" ng-repeat="entry in chart.entry">
<h2>{{entry['im:name'].label}}</h2>
</div>
</div>