Angularjs 如何在Angular JS项目中选择json文件中具有特定atribute的对象?

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">

我有一个链接到一个API,其中列出了电影,每部电影都有标题,id等

API:

它还有一个包含“provider\u id”属性的offers数组

我需要显示在哪个提供商有多少电影可用

但我不知道怎么做,我想到的最好的办法是:

 {{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>