Javascript AngularJS访问JSON数组[n]。属性数据

Javascript AngularJS访问JSON数组[n]。属性数据,javascript,json,angularjs,Javascript,Json,Angularjs,我的AngularJS应用程序中的一个服务有以下响应: { "people": [ {"id": "b3b38689", "name": "Tom"}, {"id": "a62e603f", "name": "Dick"}, {"id": "da703c62", "name": "Harry"} ], "groups": [ {"name": "group 1", participants: ["b3b38689", "a62e603f"]},

我的AngularJS应用程序中的一个服务有以下响应:

{
  "people": [
    {"id": "b3b38689", "name": "Tom"},
    {"id": "a62e603f", "name": "Dick"},
    {"id": "da703c62", "name": "Harry"}
  ],
  "groups": [
    {"name": "group 1", participants: ["b3b38689", "a62e603f"]},
    {"name": "group 2", participants: ["a62e603f", "da703c62"]}
  ]
}
最终,这将映射到

$scope.data
那么,在我看来,我有:

<div data-ng-repeat="group in data.groups">
  <h1>{{group.name}}</h1>
  <p data-ng-repeat="participant in group.participants">...</p>
</div>

{{group.name}

这将成功输出:

<div>
  <h1>group 1</h1>
  <p>...</p>
  <p>...</p>
</div>
<div>
  <h1>group 2</h1>
  <p>...</p>
  <p>...</p>
</div>

第一组

第2组

我想将id匹配的条目的“people[n].name”标记放在“p”中

有人能帮我理解我是如何做到这一点的吗

问候,


Chris

您需要一种基于id查找某人的方法。有很多方法可以做到这一点,但其中一种方法是将您的人员数组转换为id字段为键的对象。e、 g

$scope.people = {};
var peopleArray = $scope.data.people;
for (var i = 0; i < $scope.data.people.length; i++) {
    $scope.people[peopleArray[i].key] = peopleArray[i].name;
}
$scope.people={};
var peopleArray=$scope.data.people;
对于(变量i=0;i<$scope.data.people.length;i++){
$scope.peopleArray[i].key]=peopleArray[i].name;
}
然后在你的html中你可以

<p>{{people[participant]}}</p>
{{people[participant]}


按参与者id筛选
数据。人员

<p data-ng-repeat="participant in group.participants">
  <span ng-bind="(data.people | filter:{id:participant})[0].name"></span>
</p>


您可以按如下方式使用过滤器:

 <p data-ng-repeat="participant in group.participants">
      {{(data.people | filter:search(participant))[0].name}}
 </p>
以下是plunker链接:


最简单的方法是,您可以将用户名和服务器端的id一起包含在组json对象中。在角度解决方案中,我不确定最干净的方法是什么。。也许用过滤器?
  $scope.search = function(name){
    return function(item)
    {
      return item.id == name;
    }
  };