如何找到扩展行的匹配 subGridOptions.data 元素?

How do I find matching subGridOptions.data element for expanded row?

在 Angular UI-Grid v4.0.4 中,对于可扩展行内的每一行,我都有一个名为 "ViewLog" 的按钮。我试图在单击 ViewLog 按钮时显示子行内的数据。

这是结构

Parent Row 1
  |
  --- (ViewLog) Child 1 (json for child 1)
  --- (ViewLog) Child 2 (json for child 2)
  --- (ViewLog) Child 3 ...
  |
Parent Row 2
  |
  --- (ViewLog) Child 1 (json for child 1)
  --- (ViewLog) Child 2 ...

expandable的代码:

gridApi.expandable.on.rowExpandedStateChanged($scope, function (row) {
    if (row.isExpanded) {
        row.entity.subGridOptions = {
            appScopeProvider: $scope,
            columnDefs: [
                {
                    name: 'Log',
                    field: '',
                    width: "85",
                    cellTemplate: '<button ng-click="grid.appScope.displayLogFile(row.entity.subGridOptions.data[howToFindRightElement]);">View Log</button>'
                }
            ]
        };
    }
}); 

在我上面的例子中,在cellTemplate中,row.entity.subGridOptions.data是一个数组。我似乎无法弄清楚如何从该数组中识别与展开父行后选择的子行匹配的正确元素。

我只想从子行中找到 JSON 并将其传递给 displayLogFile()

所以如果我没理解错的话,你想看的是展开行后创建的新生成的 ui 网格的数据。如果是这样,那么我认为您需要将 is 视为另一个范围。 row.entity in expandable !== row.entity in cellTemplate。既然如此,那你只需要这个row.entity。所以下面的 columnDef 设置应该可以工作。

row.entity.subGridOptions = {
    appScopeProvider: $scope,
            columnDefs: [
                {
                    name: 'Log',
                    field: '',
                    width: "85",
                    cellTemplate: '<button ng-click="grid.appScope.displayLogFile(row.entity);">View Log</button>'
                }
            ]
        };