Angularjs 如何在Angular JS项目中选择json文件中具有特定atribute的对象?
我有一个链接到一个API,其中列出了电影,每部电影都有标题,id等 API: 它还有一个包含“provider\u id”属性的offers数组 我需要显示在哪个提供商有多少电影可用 但我不知道怎么做,我想到的最好的办法是:Angularjs 如何在Angular JS项目中选择json文件中具有特定atribute的对象?,angularjs,api,Angularjs,Api,我有一个链接到一个API,其中列出了电影,每部电影都有标题,id等 API: 它还有一个包含“provider\u id”属性的offers数组 我需要显示在哪个提供商有多少电影可用 但我不知道怎么做,我想到的最好的办法是: {{movie.offers[0].provider_id}} 但这只显示了每部电影的第一个提供者 我想要的是提取每个提供商有多少部电影 我的Html: <div ng-controller="ProviderController as provider">
{{movie.offers[0].provider_id}}
但这只显示了每部电影的第一个提供者
我想要的是提取每个提供商有多少部电影
我的Html:
<div ng-controller="ProviderController as provider">
<div ng-repeat="movie in provider.movies">
{{movie.offers[0].provider_id}}
</div>
</div>
这也是json文件的结构:
[{
"id": 140524,
"title": "Dracula Untold",
"offers": [{
"provider_id": 2,
"retail_price": 14.99,
//...
}, {
"provider_id": 2,
"retail_price": 14.99,
}, {
"provider_id": 7,
"retail_price": 14.99,
}, ]
},
{
"id": 138993,
"title": "The Purge: Anarchy",
"offers": [
// ...
]
},
]
有什么想法吗?谢谢。您需要更改数据库的结构,以使提供程序处于顶级。实现这种功能的函数应该迭代每部电影提供的内容,如下所示:
function getProviders (movies) {
var providers = [],
movie = {},
offer = {};
for (var i = 0, max = movies.length; i < max; i += 1) {
movie = movies[i];
for (var j = 0; j < movies[i].offers.length; j += 1) {
offer = movie.offers[j];
if (typeof providers[offer.provider_id] === 'undefined') {
providers[offer.provider_id] = { movies: [] };
}
providers[offer.provider_id].movies.push(movie);
}
}
return providers;
}
function getProviders (movies) {
var providers = [],
movie = {},
offer = {};
for (var i = 0, max = movies.length; i < max; i += 1) {
movie = movies[i];
for (var j = 0; j < movies[i].offers.length; j += 1) {
offer = movie.offers[j];
if (typeof providers[offer.provider_id] === 'undefined') {
providers[offer.provider_id] = { movies: [] };
}
providers[offer.provider_id].movies.push(movie);
}
}
return providers;
}
<div ng-repeat="provider in providers track by $index">
{{provider.movies.length}}
</div>