Angular - 基于嵌套数组boolean的Filter

时间:2014-04-30 14:36:25

标签: angularjs angularjs-filter

我试图找到一种基于嵌套数组中的布尔值来过滤点击的好方法。

我目前的范围如下所示

$scope.persons = [
   { 
     firstName : 'Drew',
     lastName : 'Minns',
     views : [
       {
         name : 'View 1',
         support : true
       },
       {
         name : 'View 2',
         support : false
       }
     ],
   },
   { 
     firstName : 'Peter',
     lastName : 'Parker',
     views : [
       {
         name : 'View 1',
         support : false
       },
       {
         name : 'View 2',
         support : false
       }
     ],
   }
  ];

我希望添加一个根据每个视图对象的布尔值进行排序的过滤器。我遇到的问题是,我无法在不迭代每个数组的情况下访问该值。这样做很难在不参考数组编号的情况下访问每个单独的值。

我想根据特定的"视图"隐藏父对象。对象在支持字段中有真或假。

同样,我希望点击这样做,所以我们的想法是点击按钮查看'查看1'并且只显示那些具有真正支持值的父对象。每个"视图"将有多个按钮。所以我希望根据对视图的支持来提供向下钻取的动作。

这是一个笨蛋http://plnkr.co/edit/ipi8vKEbxps2H89HTg00?p=preview

1 个答案:

答案 0 :(得分:1)

您可以使用Angular JS的“过滤器”功能来执行此操作。 Plunkr示例,下面有相关更改

http://plnkr.co/edit/LHTpRqHbTxEAslY0rd5J?p=preview

<ul ng-repeat="view in person.views | filter:{ support: true }">

修改:根据您的需要,我将快速自定义过滤器打成一片:http://plnkr.co/edit/LHTpRqHbTxEAslY0rd5J?p=preview