Angularjs 使用外部筛选器筛选数据时UI网格变为空白

Angularjs 使用外部筛选器筛选数据时UI网格变为空白,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,我正在我的项目中使用UI grid v3.0.0。最近我修改了代码,使用下拉列表值过滤网格。在此更改之后,当我多次过滤网格时,UI网格将变为空白。这是间歇性问题,我没有收到任何javascript错误。当应用过滤器后UI网格变为空白时,UI网格将保持空白,直到用户移动UI网格的滚动条 我正在使用下面的网格选项 $scope.options={ EnableColumn菜单:false, enableSelectAll:true, 启用筛选:正确, 启用水平滚动条:0, enableRowHea

我正在我的项目中使用UI grid v3.0.0。最近我修改了代码,使用下拉列表值过滤网格。在此更改之后,当我多次过滤网格时,UI网格将变为空白。这是间歇性问题,我没有收到任何javascript错误。当应用过滤器后UI网格变为空白时,UI网格将保持空白,直到用户移动UI网格的滚动条

我正在使用下面的网格选项

$scope.options={ EnableColumn菜单:false, enableSelectAll:true, 启用筛选:正确, 启用水平滚动条:0, enableRowHeaderSelection:false, enableRowSelection:true, 数据:[], showSelectionCheckbox:true, selectionRowHeaderWidth:25, 行高:25, columnDefs:$scope.columnDefs }; $scope.options.onRegisterApi=函数gridApi{ $scope.options=gridApi; gridApi.selection.on.rowSelectionChanged$rootScope,functiongridApi{ $scope.options.selected=gridApi;
}您可以使用$filter of angular来过滤剑道网格数据源

您可以从下面的代码中获取参考,请告诉我您还需要什么

 var ds = $filter('filter')($scope.grdDataSource.dataSource.data, $scope.searchText);
 $scope.kendoGridOptions.dataSource.data = ds;

我一直无法让core.refresh为我工作。我实际上使用了一种解决方法。您可以尝试一下,看看它是否有助于解决此问题

创建函数:

 $scope.refresh = false;

  function refresh () {
    $scope.refresh = true;
    $timeout(function () {
        $scope.refresh = false;
    }, 0);
};
在网格div上添加ng:

                <div ng-if="!refresh" ui-grid="gridOptions" class="grid"></div>
然后在需要刷新网格的位置/时间在控制器中调用refresh


我希望这会有所帮助!

您需要在刷新后设置滚动位置,如下所示:

$scope.options.core.refresh();    
$scope.options.core.scrollTo($scope.data[0], $scope.columnDefs[0]);

他没有使用剑道网格。他使用的是ui-grid。谢谢你的回答。我有一个疑问。在刷新功能中,你只是将刷新设置为false。你想在刷新代码中做什么?它是如何工作的?