我有一个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
模块简单不支持core
模块does。
有没有办法在更换项目之前获取项目的选择状态?
我在选择模块的文档中发现了这个GridRow类,该文档具有isSelected
属性,但没有想法如何获取它...
这是展示行为的Plunk - 请注意,替换行后selectionCount
也是错误的,因此某处必须存在某种选定的商品信息。
更新:似乎替换绑定数组中的项不会删除ui-grid内部使用的GridRow(这也是selectedCount错误的原因) 。在替换项目之前调用unSelectRow
会修复计数,但GridRow
仍然存在...
答案 0 :(得分:0)
结束复制旧replacementData
对象上data
的所有属性。这样就保留了选择状态,并且没有创建新的GridRow
。
angular.extend($scope.data[i], replacementData);