从不同的数组中获取匹配元素

时间:2015-02-22 02:02:21

标签: angularjs angularjs-filter

我有一个名为groupUsers的数组和一个名为tasks.users的数组中的另一个数组,如下所示:

this.groupUsers = [
{$id: "simpleLogin:1", name: "bob"},
{$id: "simpleLogin:2", name: "joe"}];

this.tasks = [
{title: "do something", users:["simpleLogin:1","simpleLogin:2"]},
{title: "do something else", users:["simpleLogin:2"]}]; 

我要做的是在显示任务时显示用户的groupUsers名称,而不是他们的ID,但我不确定如何获取它。我认为它涉及过滤器?

使用以下代码,我可以显示分配给每个任务的任务和用户ID,而不是名称。

<div class="taskContainer"  ng-repeat="task in todo.tasks | orderBy:'-when'"> 
  <div><span ng-repeat="users in task.users">{{users}} </span></div> 
  <span> {{task.title}} </span>
</div>

1 个答案:

答案 0 :(得分:1)

您可以扩展到此功能以满足您的需求,现在它将返回传入ID的一个名称,$ filter是一个角度服务,请记住将其包含在您的控制器中

$scope.getName = function(id){
   return $filter('filter')(groupUsers, { name: id})[0].name;
 };

这是你的HTML

<div class="taskContainer"  ng-repeat="task in todo.tasks | orderBy:'-when'"> 
  <div><span ng-repeat="users in task.users">{{getName(users[0])}} </span></div> 
  <span> {{task.title}} </span>
</div>