首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用按钮的角度UI网格过滤器

使用按钮的角度UI网格过滤器
EN

Stack Overflow用户
提问于 2016-05-17 19:08:51
回答 1查看 1.5K关注 0票数 0

使用角度UI网格singleFilter,我希望只有一个按钮来过滤"Company = Mixers“。过滤器使用输入工作,但如何将单个筛选器应用于按钮?

柱塞http://plnkr.co/edit/R6PhMiBbaeqj9ErjdvY1?p=preview

HTML:

代码语言:javascript
复制
<div ng-controller="MainCtrl">

  <p><button ng-click='filterBtn()'>Filter for "Company = Mixers"</button></p>

  <p><input ng-model='filterValue'/><button ng-click='filter()'>Filter</button></p>

  <div id="grid1" ui-grid="gridOptions" class="grid"></div>

</div>

联署材料:

代码语言:javascript
复制
var app = angular.module('app', ['ngTouch', 'ui.grid']);

app.controller('MainCtrl', ['$scope', '$http', function ($scope, $http) {
  var today = new Date();
  $scope.gridOptions = {
    enableFiltering: false,
    onRegisterApi: function(gridApi){
      $scope.gridApi = gridApi;
      $scope.gridApi.grid.registerRowsProcessor( $scope.singleFilter, 200 );
    },
    columnDefs: [
      { field: 'name' },
      { field: 'company' }
    ]
  };

  $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
    .success(function(data) {
      $scope.gridOptions.data = data;
  });

 $scope.filterBtn = function(val) {
   // filter for "Company = Mixers" only.
   $scope.gridApi.grid.dataSource.filter({
      field: "company",
      operator: "eq",
      value: "Mixers" //or val
    });
 };

  $scope.filter = function() {
    $scope.gridApi.grid.refresh();
  };

  $scope.singleFilter = function( renderableRows ){
    var matcher = new RegExp($scope.filterValue);
    renderableRows.forEach( function( row ) {
      var match = false;
      [ 'name', 'company', 'email' ].forEach(function( field ){
        if ( row.entity[field].match(matcher) ){
          match = true;
        }
      });
      if ( !match ){
        row.visible = false;
      }
    });
    return renderableRows;
  };
}]);
EN

回答 1

Stack Overflow用户

发布于 2016-05-17 19:14:27

您需要的是以编程方式向网格添加筛选器:

代码语言:javascript
复制
$scope.filterBtn = function(val) {
     $scope.gridApi.grid.columns['Company'].filters[0] = {
                        term: 'mixers'
        };

  };

Here some related question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37284402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档