加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

数组 – 在AngularJS中使用数组过滤数组

发布时间:2020-12-17 07:14:40 所属栏目:安全 来源:网络整理
导读:我尝试过滤一组带有数组的复选框: ion-checkbox ng-repeat =“user in users | filter:{id:group.members}”ng-model =“user.checked” {{user.info.name}} / ion-checkboxgt ; 其中group.members是user.id的数组,它只是没有显示任何内容. 用户数组: [1
我尝试过滤一组带有数组的复选框:

< ion-checkbox ng-repeat =“user in users | filter:{id:group.members}”ng-model =“user.checked”> {{user.info.name}}< / ion-checkbox&gt ; 其中group.members是user.id的数组,它只是没有显示任何内容. 用户数组: [12345,123456] group.members数组: [12345] 我试图完成不在用户列表中显示group.members,因为在这种情况下,用户正在尝试邀请其他用户加入该组以及为什么邀请已经是其成员的人? 我尝试创建自己的过滤器,但它只是一个烂摊子:

.filter('existingMembers',function() {
    return function(users,members) {
        return users.filter(function(user) {

            for (var i in user.id) {

                if (members.indexOf(user.id[i]) != -1) {
                    return;
                }
            }
            return user;

        });
    };
})

解决方法

经过一番捣乱,这就是解决方案. See the plunkr为一个工作的例子.
我认为这应该可以解决问题:

模板:

<ion-checkbox ng-repeat="user in users | filter: excludeMembers:group.members" ng-model="user.checked">{{user.info.name}}</ion-checkbox>

角度过滤器:

app.filter('excludeMembers',function(){
  return function(users,members){
    return users.filter(function(user){
      return members.indexOf(user.id) === -1;
    });
  }
})

很长的解释

过滤器将您要过滤的数组作为第一个参数作为默认值,然后使用冒号表示法(:),您可以提供可选参数,在您的情况下:组.过滤器应返回一个将运行的函数.返回值应为筛选数组.我们还使用本机javascript过滤器函数(令人困惑,哇)来检查组数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读