具有多个Perm的AngularJS过滤器

具有多个Perm的AngularJS过滤器,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我有一个像这样的用户 [{id:1,name:'name',parent_id:0,type:1}, {id:2,name:'name2',parent_id:0,type:2}, {id:3,name:"name1 child",parent_id:1,type:1}] 我尝试根据父用户id和类型id显示父用户和子用户,例如,id 3是id 1的子用户,我尝试这样显示它们 谢谢你的帮助我把你的小提琴修好了: {{user.name} {{child.name} 您的主要问题是

我有一个像这样的用户

[{id:1,name:'name',parent_id:0,type:1},
{id:2,name:'name2',parent_id:0,type:2},
{id:3,name:"name1 child",parent_id:1,type:1}]
我尝试根据父用户id和类型id显示父用户和子用户,例如,id 3是id 1的子用户,我尝试这样显示它们


谢谢你的帮助

我把你的小提琴修好了:


  • {{user.name}
  • {{child.name}
  • 您的主要问题是您试图将“过滤器”过滤器与函数一起使用,这是可以的,但该函数不允许接受任何参数。如果您确实需要创建一个接受参数的筛选器,则必须编写一个自定义筛选器:

    但在您的情况下,您可以使用标准的“过滤器”过滤器,并向其传递将执行您想要的操作的对象


    同样,你也会因为开发人员创建了一个名为filter的抽象,然后又创建了一个“filter”filter而诅咒你。我的意思是,这有多混乱?

    我把你的小提琴修好了:

    
    
  • {{user.name}
  • {{child.name}
  • 您的主要问题是您试图将“过滤器”过滤器与函数一起使用,这是可以的,但该函数不允许接受任何参数。如果您确实需要创建一个接受参数的筛选器,则必须编写一个自定义筛选器:

    但在您的情况下,您可以使用标准的“过滤器”过滤器,并向其传递将执行您想要的操作的对象


    同样,你也会因为开发人员创建了一个名为filter的抽象,然后又创建了一个“filter”filter而诅咒你。我的意思是,这有多混乱?

    这不是使用过滤器的正确方法。如果查看文档,则有三个选项:

  • 使用字符串。它将在对象中进行深入搜索。任何包含字符串的深度值的对象都将匹配
  • 使用函数。它将为数组的元素调用。您应该在函数的作用域中提供任何参数,而不是作为过滤器的参数
  • 使用一个对象。它的工作方式类似于字符串匹配,但适用于特定属性
  • 如果你使用第三种情况

    <li ng-repeat="child in users | filter:{parent_id: user.id, type: user.type}">
    
    然后您将看到正确的结果


    这不是使用过滤器的正确方法。如果查看文档,则有三个选项:

  • 使用字符串。它将在对象中进行深入搜索。任何包含字符串的深度值的对象都将匹配
  • 使用函数。它将为数组的元素调用。您应该在函数的作用域中提供任何参数,而不是作为过滤器的参数
  • 使用一个对象。它的工作方式类似于字符串匹配,但适用于特定属性
  • 如果你使用第三种情况

    <li ng-repeat="child in users | filter:{parent_id: user.id, type: user.type}">
    
    然后您将看到正确的结果


    我已经尝试过JSFIDLE链接中显示的自定义过滤器。我已经尝试过JSFIDLE链接中显示的自定义过滤器。哎呀,这是非同时性的破坏。。。哎呀,这是对非同时性的破坏。。。
    {{ child.name }}