在角度上动态查找值

时间:2015-06-23 12:59:14

标签: angularjs

获得两组数据。第一个是postits,另一个是userlist。 postits中的每个对象都包含一组关于文档的值,其中一个是所有者,它被设置为内部id。 第二组(userlist)包含用户的id和名称。

我的问题是,我现在要打印我的帖子列表,但我想打印所有者的名字而不是他们的ID。这可能吗。

以下代码有效(除了postit.owner目前是id):

<tr ng-repeat="postit in postits">
    <td>Control</td>
    <td><small>{{postit.type}}</small></td>
    <td><small>{{postit.owner }}</small></td>
    <td><small>{{postit.action.review | date:'yyyy-MM-dd' }}</small></td>
    <td><small>{{postit.title}}</small></td>

</tr>

用户列表信息也可以采用以下格式:

[{"_id":"558869db610eb146a526728f","userName":"Bengt Bjorkberg"},{"_id":"55895508f35d9f020970ea91","userName":"test2"},{"_id":"5589550ff35d9f020970ea92","userName":"test3"}]

这两组数据在范围

中可用

1 个答案:

答案 0 :(得分:1)

您可以在接受getPostitOwner作为其参数的范围上创建一个函数(例如id)并返回所有者。你会这样使用它:

<td><small>{{ postit.type }}</small></td>
<td><small>{{ getPostitOwner(postit.owner).userName }}</small></td>

关于查找函数的实现:

$scope.getPostitOwner = function (id) {
    for (var i = 0; i < userlist.length; i++) {
        if (userlist[i]._id === id) {
            return userlist[i];
        }
    };
}

请注意,此查找功能会经常运行。在这种情况下,我通常会格式化postits集合,以便在我拥有这两个列表后立即将所有者的对象添加到每个postit