Handsontable:更新单元格的元后重新渲染单元格?
Handsontable: Rerender a cell after updating the cell's meta?
每次更改单元格后,我都会将单元格的内容发送到后端,获取更新的元对象并将其应用于单元格。新的元对象为渲染器保留不同的颜色。设置元数据后,我需要重新触发单元格渲染。我在 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.
}
}
有人这样做过吗?任何想法都会受到赞赏,因为我没有任何想法。
Handsontable 不只是重新渲染单个单元格。任何触发更改的事件都将重新呈现整个 table。这样做是为了确保 table 是 "state-less" 并始终反映数据所代表的内容。话虽如此,重新渲染整个 table 有什么问题?它应该很快,因为 HOT 使用虚拟渲染,但您看到那里有问题吗?
如果您的意思是要更新渲染器,那么您可以在更新渲染器的评论中插入:
hot.updateSettings({
cells: newCellsDefinition // here you would define a new renderer for whatever cells you want to change the renderer for
});
每次更改单元格后,我都会将单元格的内容发送到后端,获取更新的元对象并将其应用于单元格。新的元对象为渲染器保留不同的颜色。设置元数据后,我需要重新触发单元格渲染。我在 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.
}
}
有人这样做过吗?任何想法都会受到赞赏,因为我没有任何想法。
Handsontable 不只是重新渲染单个单元格。任何触发更改的事件都将重新呈现整个 table。这样做是为了确保 table 是 "state-less" 并始终反映数据所代表的内容。话虽如此,重新渲染整个 table 有什么问题?它应该很快,因为 HOT 使用虚拟渲染,但您看到那里有问题吗?
如果您的意思是要更新渲染器,那么您可以在更新渲染器的评论中插入:
hot.updateSettings({
cells: newCellsDefinition // here you would define a new renderer for whatever cells you want to change the renderer for
});