每次更改单元格后,我将单元格内容发送到后端,获取更新的元对象并将其应用于单元格。新的元对象为渲染器保留不同的颜色。我需要在设置元数据后重新启动单元格渲染。我发现事件在SetCellMeta()之后,但我找不到仅重新渲染单个单元格的方法。仅供参考,这是我正在使用的功能:
function updateCell(data) {
var i = 0;
var to = data.length;
for (i; i<to; i++) { // Go trough all changed cells, update their meta object.
var row = data[i].row;
var col = data[i].col;
var metaObject = data[i];
console.log('About to set: ', metaObject);
vm.hot.setCellMetaObject(row, col, metaObject);
// I need to update the renderer here.
}
}
有人做过吗?任何想法都值得赞赏,因为我没有任何想法。
答案 0 :(得分:1)
Handsontable并不只是重新渲染单个单元格。任何触发更改的事件都将重新呈现整个表。这样做是为了确保表格是无状态的&#34;并始终反映数据所代表的含义。话虽如此,重新渲染整个表的问题是什么?它应该很快,因为HOT使用虚拟渲染,但你在那里看到问题吗?
如果您的意思是想要更新渲染器,那么您可以在更新渲染器的评论中插入:
hot.updateSettings({
cells: newCellsDefinition // here you would define a new renderer for whatever cells you want to change the renderer for
});