【问题标题】:Check if array contains value in angularjs检查数组是否包含angularjs中的值
【发布时间】:2015-05-25 16:50:32
【问题描述】:

在客户端我有 $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(或通常以角度)中的数组中是否存在元素?

【问题讨论】:

  • 对话obj和logged_in_user obj的定义一样吗?
  • @SatyamKoyani conversation.participants 是一个用户对象数组。过滤的重点其实是判断这个数组中的一个用户是否是当前登录的用户。

标签: arrays angularjs node.js


【解决方案1】:

你可以使用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 注入您的控制器。

【讨论】:

  • 这里只能通过viewside吗?
猜你喜欢
  • 2020-06-03
  • 2019-08-10
  • 2015-01-01
  • 2021-07-15
  • 1970-01-01
  • 2021-08-19
  • 2016-02-04
  • 1970-01-01
相关资源
最近更新 更多