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

Getting a matching element from a different array

我有一个名为 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>

你可以扩展这个功能来满足你的需要,现在它会return传入id的一个名字,$filter是一个angular服务,记得把它包含在你的控制器

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