我正在使用带有无限滚动的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