Javascript AngularJS访问JSON数组[n]。属性数据
我的AngularJS应用程序中的一个服务有以下响应: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"]},
{
"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;
}
};