2016-05-17 7 views
0

角度UIグリッドhttp://ui-grid.info/docs/#/tutorial/321_singleFilterを使用すると、「Company = Mixers」のみをフィルタリングするボタンが1つあります。フィルタは入力を使用して動作しますが、ボタンに単一のフィルタを適用するにはどうすればよいですか?ボタンを使用した角度UIグリッドフィルター

Plunkerhttp://plnkr.co/edit/R6PhMiBbaeqj9ErjdvY1?p=preview

HTML:

<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> 

JS:

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; 
    }; 
}]); 

答えて

0

必要なものグリッドにプログラム的にフィルタを追加します:

$scope.filterBtn = function(val) { 
    $scope.gridApi.grid.columns['Company'].filters[0] = { 
         term: 'mixers' 
     }; 

    }; 

Here some related question

+0

http://ui-grid.info/docs/#/tutorial/321_singleFilter:私は剣道の代わりに角度UIグリッドを使用しています。 "演算子"とは何ですか? – simple

+0

申し訳ありませんが、グリッドについてのこの質問が表示されています)グリッドで作業していませんでしたが、Googleではフィルタリングの方法を教えています –

+0

@簡単に試してみてください。スティールに問題がありますか? –

関連する問題