angularjs – 我该怎么做才能获得使用UI-Grid在屏幕上显示的行

我正在使用带有无限滚动的UI-Grid,我只想获取用户屏幕上显示的行,以便将它们发送到模态窗口进行编辑(根据用户的要求,他们想要做这在当前观点之外).

我怎么能实现这个目标?让我们说在一个1920×1080的屏幕上,屏幕能够显示25行,我想得到那25行显示.显然这个数字根据屏幕尺寸和/或分辨率而有所不同,所以我想根据这两个来捕获,如果没有,那么至少要分配标准25.

这有可能吗?

编辑:
我查看了rowTemplates并实现了如下角度视口:

rowTemplate: '<div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.uid" ui-grid-one-bind-id-grid="rowRenderIndex + \'-\' + col.uid + \'-cell\'" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader }" role="{{col.isRowHeader ? \'rowheader\' : \'gridcell\'}}" ui-grid-cell viewport-enter="" viewport-leave=""></div>'

但是我迷失了,因为我可以用这种方法标记出可见的东西.此外,这会在行中的每个单元格中放置角度视口标记,并且在UI-Grid支持组中的一些问题中检查后,我发现我无法修改视口模板(我可以在其中添加视口属性而不是行(包括这些标签).

有任何想法吗?这是朝着正确方向迈出的一步吗?

最佳答案 你有没有尝试过gridScope.renderedRows或event.targetScope.renderedRows?

方式1:

$scope.$on('ngGridEventData', function (event) {
    console.log(event.targetScope.renderedRows);
});

方式2:

var gridApi;
gridOptions = {
    //...
    onRegisterApi: function (api) {

        gridApi = api;

    }
}

//在您的代码中,您可以通过以下方式获取renderRows:

gridApi.grid.renderContainers.body.renderedRows
点赞