在客户端,我有$ 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(或通常是角度)数组中的元素是否存在?
答案 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注入控制器。