Angular UI-Grid单个过滤器不起作用 - 它仅适用于2个字符,不适用于整个字符串

问题描述 投票:0回答:1

我已经实现了角度UI-Grid,它是单个过滤器,但过滤器仅适用于2个字符,如果整个字符串/列值放在输入框中,则不会显示任何列。以下是我的代码,

                 <input class="form-control" ng-change="refreshData(searchText)" placeholder="Search" ng-model="searchText" />

<div id="grid1" ng-if="gridOptions.data.length>0" ui-grid="gridOptions" ui-grid-pagination class="grid grid-fontSize"></div>

JS代码,

$scope.refreshData = function (termObj) {
       $scope.gridOptions.data = data;

       while (termObj) {
           var oSearchArray = termObj.split(' ');
           $scope.filterGrid1.data = $filter('filter')($scope.gridOptions.data, oSearchArray[0], undefined);
           oSearchArray.shift();
           termObj = (oSearchArray.length !== 0) ? oSearchArray.join(' ') : '';
       }
   };

我从http调用中获取数据并保存到数据变量中并使用它来搜索并将数据填充到网格中。注意:我也尝试过,

$scope.refreshData = function() {
  $scope.gridOptions.data = $filter('filter')(data, $scope.searchText, undefined);
   };

但是它们都不起作用,它只适用于2个字符,但是当我放入整个字符串时,即使有匹配的列网格也没有显示任何内容。

任何解决方案或想法都会有所帮助,在此先感谢。这是一个具有相同问题的plunker plunker, implementation,我也希望搜索选择,下拉也是第二个字段,问题: - Gladys Rivas,记录在那里,如果我正在搜索“Gladys Rivas”没有结果,但是如果用“Gla”我可以看到记录。

angularjs ui-grid
1个回答
0
投票

你仔细阅读了这份文件吗?

显然地

$filter('filter')(data, $scope.searchText, undefined);

无法自动过滤所有数据。

下面的文档中有一个完整的示例:

http://ui-grid.info/docs/#!/tutorial/321_singleFilter

由于您需要更改许多地方,我建议您在任何进一步的步骤之前仔细查看该文档。

© www.soinside.com 2019 - 2024. All rights reserved.