如何使用 dom 获取 ng-grid 行数据?

How to get ng-grid row data using dom?

我正在使用 https://github.com/logicbomb/lvlDragDrop 来实现拖放。我将该指令应用于 angular 中的 rowTemplate,因此每个单元格都可以拖放。

在大多数情况下,实际功能是有效的,我想要的功能仍在实现中。当我 select 1 个单元格并将其放入另一个单元格时,我想要每个单元格的 rowEntity,但我不知道如何在不触发 ng-grid 事件(例如 ngStartCellEdit)的情况下获取此 rowEntity。

如果我至少可以获取我拖动的单元格的行索引和列索引,那将是一个很好的起点。

我正在使用的库正在使用angular.element来查找我正在拖动的元素,但我还没有找到一种方法来进一步查找被拖动项目的rowEntity 数据。

有什么建议或想法吗?

试试这个:

$scope.dropped = function(dragEl, dropEl) {
   var drag = angular.element(dragEl);
   var cellScope = drag.scope();
   var rowScope = cellScope.$parent;
   var entity = rowScope.row.entity;

   //Short version:
   var entity = angular.element(dragEl).scope().$parent.row.entity;
   var colIndex= cellScope.col.index;
   var rowIndex = rowScope.row.index;
}

这应该适用于 ng-grid 和 ui-grid。

说明:我们使用angular.element将HTML元素转换为angular元素。然后我们使用 "scope" 获取绑定到该单元格的范围变量。要获取行的范围,我们需要获取单元格范围的父级。您可以在这里阅读更多相关信息:https://docs.angularjs.org/guide/scope.