【问题标题】:Angular ui-grid Set Filter at RuntimeAngular ui-grid 在运行时设置过滤器
【发布时间】:2016-02-20 05:25:55
【问题描述】:

我在运行时通过用户交互设置列过滤器时遇到问题。这是我的尝试:

http://plnkr.co/edit/Ynesaq5o3HNsF5r8rXQf?p=preview

$scope.setFilter = function() {
    $scope.gridApi.grid.columns[1].filters[0] = {
      condition: uiGridConstants.filter.EXACT,
      placeholder: '',
      term: 'female'
    };

    $scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.ALL);
    $scope.gridApi.grid.refresh();
}

字段已设置,词条已添加到字段中,但数据未刷新。

有什么想法吗?

【问题讨论】:

    标签: angularjs angular-ui-grid


    【解决方案1】:

    在最初的 plunker 中,我将 useExternalFiltering 设置为 true。删除它解决了我遇到的问题。

    var app = angular.module('app', ['ngTouch', 'ui.grid']);
    
    app.controller('MainCtrl', ['$scope', '$http', '$interval', 'uiGridConstants', function ($scope, $http, $interval, uiGridConstants) {
      $scope.filterText = 'female';
      $scope.gridOptions = {
        enableFiltering: false,
    
        columnDefs: [
          { name: 'name', enableFiltering: false },
          { name: 'gender' },
          { name: 'company', enableFiltering: false}
        ],
        onRegisterApi: function( gridApi ) {
          $scope.gridApi = gridApi;
        }
      };
    
      $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/100.json')
      .success(function(data) {
        $scope.gridOptions.data = data;
      });
    
      $scope.setFilter = function() {
        console.log($scope.gridApi.grid.columns[1]);
        $scope.gridApi.grid.columns[1].filters[0] = {
          condition: uiGridConstants.filter.STARTS_WITH,
          term: $scope.filterText
        };
    
        $scope.gridOptions.enableFiltering = true
        $scope.gridApi.grid.refresh(); 
      }
    
    }]);
    

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多