Angular UI-Grid expandableRow selectionChange update parent

Angular UI-Grid expandableRow selectionChange update parent

我使用 Angular-UI 网格和 ui-网格可扩展选项。 如果可扩展(子)网格的一行被 select 编辑,是否还有 select 父网格行的选项? 如果不是至少我需要在子(可扩展)网格的 rowSelectionChanged 事件中访问父级 grid/row,它似乎没有自己的范围?

 gridApi.selection.on.rowSelectionChanged($scope, function (rows) {
             var selectedRows=gridApi.selection.getSelectedRows();
             ...
             //select parent grid row here...
              });

是的,有办法做到这一点。您只需要在范围内向后移动即可访问父行和父行的网格 api。请记住,appScope 始终引用网格的父范围。因此,在您的可扩展子网格中,父范围包含行对象。

在子网格的 onRegisterApi 处理程序中,您可以通过以下方式访问父行:row.grid.appScope.row。然后你可以 select 父行:row.grid.appScope.row.grid.api.selection.selectRow(row.grid.appScope.row.entity)

这是一个稍微清理一下的代码示例:

onRegisterApi: function (api) {
  api.selection.on.rowSelectionChanged($scope, function (row, event) {
    var parentRow = row.grid.appScope.row;
    if (api.selection.getSelectedRows().length > 0) {
      parentRow.grid.api.selection.selectRow(parentRow.entity);
    }
    else {
      parentRow.grid.api.selection.unSelectRow(parentRow.entity);
    }
  });
}

还有一个演示插件:http://plnkr.co/edit/7HFHPTtmcXvgoJCKiRTd?p=preview