ui-grid行有唯一的id

时间:2015-09-23 15:39:16

标签: angularjs angular-ui-grid

是否可以让ui-grid中的每一行都有唯一的ID?第一行的行有一个id为“row-0”,第二行有“row-1”等等

所以:

<div class="ui-grid-row" 
    ng-class="{'ui-grid-row-selected': row.isSelected,'ui-grid-tree-header-row': row.treeLevel > -1}" 
    ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" 
    ng-style="Viewport.rowStyle(rowRenderIndex)">
        ...
</div>

看起来像:

<div class="ui-grid-row" 
    id="row-0"
    ng-class="{'ui-grid-row-selected': row.isSelected,'ui-grid-tree-header-row': row.treeLevel > -1}" 
    ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" 
    ng-style="Viewport.rowStyle(rowRenderIndex)">
        ...
</div>

我已尝试过行模板但是在每个单元格上设置了id(可能与预期一样)

在使用Selenium时我可以通过使用id

找到它来选择一行

更新:我现在尝试将行模板上的Id设置为

row-{{rowRenderIndex}}-cell-{{col.uid}}

这会产生类似

的内容
id="row-0-cell-uiGrid-0007"

如果我然后离开屏幕并再次返回,则ID变为

id="row-0-cell-uiGrid-00PW"

如果id每次都一致,那么我可以使用这个

2 个答案:

答案 0 :(得分:0)

您可以使用$ index

<div class="ui-grid-row" 
    id="{{$index}}"
    ng-class="{'ui-grid-row-selected': row.isSelected,'ui-grid-tree-header-row': row.treeLevel > -1}" 
    ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" 
    ng-style="Viewport.rowStyle(rowRenderIndex)">
        ...
</div>

答案 1 :(得分:0)

行和列一起形成一个元组(行,列),它对于网格中的每个单元格都是唯一的。对于UI-Grid,有一种方法可以使用这个概念。 每个单元格都可以访问UI网格的内部范围变量。在此范围内,有两个键'row'和'col'。每个都有uid属性。 因此,使用元组('row.uid','col.uid')对于每个单元格始终是唯一的。 用法示例(Angular JS):

<div class="ui-grid-cell-contents" trigger-id="{{row.uid + col.uid}}">
{{ COL_FIELD }}</div>

触发器ID对于每个单元都是唯一的。对于同一页面上的多个网格,请在范围变量中命名网格并使用grid.appScope.gridName

访问它