检查数组是否包含angularjs中的值

时间:2015-03-22 17:43:41

标签: arrays angularjs node.js

在客户端,我有$ scope.loggedInUser,它指的是mongoose用户架构。我正在使用的另一个模式是会话模式。每个用户都可以加入对话,在这种情况下,他将被添加到conversation.participants数组中,其定义如下:

var conversationsSchema = new Schema({
    participants: {type: Array, default: []}
});

我想在参与者数组中仅显示与当前用户(即loggedInUser)的对话。我试过了

ng-repeat="conversation in conversations" ng-if="conversation.participants.indexOf(logged_in_user) > -1"

但我没有看到任何。如何正确检查ng-if(或通常是角度)数组中的元素是否存在?

1 个答案:

答案 0 :(得分:2)

您可以使用filter之类的

ng-repeat="conversation in conversations | filter:logged_in_user"

我不确定视图端实现是否会深入嵌套集合, 你可能需要在控制器中过滤它

filteredConversations  = $filter(this.conversations,
{name:logged_in_user},doFiltering);

过滤是一种执行实际工作的方法,例如:

function (actual, expected) {
return actual.participants.indexOf(expected) > -1;
}

如果你在控制器端执行操作,请确保将$ filter注入控制器。