Angular UI-Grid单个过滤器无法正常工作 - 它仅适用于2个字符,不适用于整个字符串

时间:2018-04-02 17:35:36

标签: angularjs ui-grid

我已经实现了角度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,我也希望在第二个字段的select,dropdown上搜索, 问题: - Gladys Rivas,记录在那里,如果我用“Gladys Rivas”搜索没有结果,但如果用“Gla”我可以看到记录。

1 个答案:

答案 0 :(得分:0)

您是否仔细阅读过该文档?

显然

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

无法自动过滤所有数据。

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

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

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