【发布时间】:2016-03-10 15:44:09
【问题描述】:
我有一个 ui-grid 绑定到一个名为 data 的对象数组,如下所示:
$scope.grd = {
enableRowSelection: true,
multiSelect: true,
enableRowHeaderSelection: false,
columnDefs: [
{ field: 'id', name: 'ID' },
{ field: 'name', name: 'Name' },
{ field: 'tags', name: 'Tags' }
],
data: "data"
};
如果我现在像这样替换数组中的一个项目:
$scope.data[i] = replacementData;
网格已正确更新,但选择状态丢失。
我猜 selection 模块 simple 不支持这个,尽管 core 模块 does。
有没有办法在替换之前获取项目的选择状态?
我在选择模块的文档中找到了这个 GridRow 类,它具有 isSelected 属性,但不知道如何获取它...
这是一个演示该行为的Plunk - 请注意,替换行后selectionCount 也是错误的,因此某处必须有某种选定的项目信息。
更新:似乎替换绑定数组中的项目不会删除 ui-grid 内部使用的GridRow(这也是 selectedCount 错误的原因)。在替换项目之前调用 unSelectRow 会修复计数,但 GridRow 仍然存在...
【问题讨论】: