Angularjs 基于嵌套布尔数组的角度滤波器

Angularjs 基于嵌套布尔数组的角度滤波器,angularjs,angularjs-filter,Angularjs,Angularjs Filter,我试图找到一种基于嵌套数组中的布尔值的点击过滤的好方法 我当前的作用域如下所示 $scope.persons = [ { firstName : 'Drew', lastName : 'Minns', views : [ { name : 'View 1', support : true }, { name : 'View 2', support

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

我当前的作用域如下所示

$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
       }
     ],
   }
  ];
我希望添加一个过滤器,根据每个视图对象的布尔值进行排序。我遇到的问题是,如果不遍历每个数组,就无法访问该值。这样做会使访问每个单独的值而不引用数组号变得困难

我想根据特定的“视图”对象在“支持”字段中是否为true或false来隐藏父对象

同样,我希望在单击时执行此操作,因此我们的想法是单击“视图1”的按钮,只有那些具有真正支持值的父对象才会显示。每个“视图”都有多个按钮,因此我希望提供基于视图支持的向下钻取操作

这里有一个plunkr

您可以使用Angular JS的“Filter”函数来实现这一点。Plunkr示例,以及下面的相关更改


编辑:为了满足您的需要,我快速定制了一个过滤器:

没错,但我希望每个“视图”都有一个过滤器。所以它不会隐藏视图,而是隐藏一般人。明白了。这有点棘手——您需要编写一个自定义过滤器来迭代内部的数组。这不是你可以用base AngularJSI来避免的,我已经用定制过滤器的概要进行了更新,以满足你的需要。使用搜索词更新$scope.searchName。您还可以为$scope.searchName创建一个数组,并更新该函数以对其进行迭代。
<ul ng-repeat="view in person.views | filter:{ support: true }">