AngularJS 1在ng-repeat中支持多个true/false过滤器。

10 浏览
0 Comments

AngularJS 1在ng-repeat中支持多个true/false过滤器。

我通过参与"项目"来最好地学习。我正在通过制作一个高尔夫球场列表应用程序来学习Angular 1.x。

golf app

我有一个包含所有数据的JSON文件。这个应用程序有一个通用的文本搜索功能,以及8个开关可以设置以过滤州的地区和高尔夫球场的类型。我已经成功实现了文本搜索。我修改了一些代码来创建一个单一的"课程类型"过滤器,它实际上是有效的。但是,一旦我尝试创建第二个过滤器,它就会出错。我将在下面发布我的代码,但它可能是临时的。

如何将八个真/假开关组合成一个过滤器或多个过滤器,并将其与文本搜索相结合,这是最好的方法?我想先进行过滤,然后再对过滤后的结果进行文本搜索。

html ng-repeat(如果我删除第二个"私人"过滤器,公共过滤器将正常工作:


过滤器(第一个过滤器单独起作用):

 .filter('publicFilter', function(){
      return function(arr, publicCourse){
           var result = [];
                if(publicCourse == true ){
                     angular.forEach(arr, function(item){
                         if(item.coursetype.toLowerCase().indexOf('public') !== -1){result.push(item);}
                     });
                     return result;
                };
      }
 })
 .filter('privateFilter', function(){
      return function(arr, privateCourse){
           var result = [];
                if(privateCourse == true ){
                     angular.forEach(arr, function(item){
                         if(item.coursetype.toLowerCase().indexOf('private') !== -1){result.push(item);}
                     });
                     return result;
                };
      }
 })

0