Javascript 为angular ui网格中的所有自定义过滤器提供单个控制器

Javascript 为angular ui网格中的所有自定义过滤器提供单个控制器,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,我正在为我的ui网格(角度ui网格)中的5列使用自定义过滤器,链接如下所示: 要创建自定义过滤器,将创建一个自定义模式,并为其指定一个控制器 此控制器用于创建过滤器值和filter.term,稍后将在主网格过滤器中使用 我需要知道我们是否可以为我的ui网格中的所有5列使用单一模式、控制器 如果有人已经使用过它,请共享。在每个列上通过自定义筛选模板调用的方法传递列名来解决它。然后根据列的类型创建过滤器选项网格 myapp2.controller('BenefitsFilterCtrl', fun

我正在为我的ui网格(角度ui网格)中的5列使用自定义过滤器,链接如下所示:

要创建自定义过滤器,将创建一个自定义模式,并为其指定一个控制器

此控制器用于创建过滤器值和filter.term,稍后将在主网格过滤器中使用

我需要知道我们是否可以为我的ui网格中的所有5列使用单一模式、控制器


如果有人已经使用过它,请共享。

在每个列上通过自定义筛选模板调用的方法传递列名来解决它。然后根据列的类型创建过滤器选项网格

myapp2.controller('BenefitsFilterCtrl', function( $scope, $compile, $timeout ) {
    var $elm;
    $scope.showBenefitsFilter = function(type) {
        $scope.listOfAges = [];

        if(type==='projectId'){
         $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
              if ( $scope.listOfAges.indexOf( row.projectID ) === -1 ) {
                $scope.listOfAges.push( row.projectID );
              }
            });
        }else if(type==='parameterHeading'){
             $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
                  if ( $scope.listOfAges.indexOf( row.benefit ) === -1 ) {
                    $scope.listOfAges.push( row.benefit );
                  }
                });
        }else if(type==='valueParameter'){
             $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
                  if ( $scope.listOfAges.indexOf( row.benefitSubcategory ) === -1 ) {
                    $scope.listOfAges.push( row.benefitSubcategory );
                  }
                });
        }else if(type==='benefitType'){
             $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
                  if ( $scope.listOfAges.indexOf( row.benefitType ) === -1 ) {
                    $scope.listOfAges.push( row.benefitType );
                  }
                });
        }else if(type==='MatureLevel'){
             $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
                  if ( $scope.listOfAges.indexOf( row.assessmentMaturityLevel ) === -1 ) {
                    $scope.listOfAges.push( row.assessmentMaturityLevel );
                  }
                });
        }else if(type==='portfolio'){
             $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
                  if ( $scope.listOfAges.indexOf( row.oxd ) === -1 ) {
                    $scope.listOfAges.push( row.oxd );
                  }
                });
        }else if(type==='program'){
             $scope.col.grid.appScope.gridOptions.data.forEach( function (row) {
                  if ( $scope.listOfAges.indexOf( row.program ) === -1 ) {
                    $scope.listOfAges.push( row.program );
                  }
                });
        }
        $scope.listOfAges.sort();
此处,listOfAges是可从模式中的网格中选择的选项列表


如果有人遇到类似的请求,准备创建一个plunker并共享。由于此代码段没有那么多描述

这是否与您正在尝试执行的操作一致?我不完全清楚你的问题(注:我不是同一个布赖恩)。谢谢您的评论,但不,这不是我要找的。如果您检查ui网格自定义筛选器实现,我们有一个控制器,可以从中获取筛选器值,然后根据用户选择创建筛选器项。我想使用相同的控制器为所有列创建自定义过滤器。