0
我想通過Handsontable重繪
hot = new Handsontable(container,
.....
來更新數據源JSON在某處代碼:
hot.getData().push({/*...*/ });
我想這條線後重繪HTML頁面的熱點。如何強制做到這一點?
我想通過Handsontable重繪
hot = new Handsontable(container,
.....
來更新數據源JSON在某處代碼:
hot.getData().push({/*...*/ });
我想這條線後重繪HTML頁面的熱點。如何強制做到這一點?
有幾種方法可以做你想問的問題。在這裏,我介紹其中兩個,幾乎直接從文檔頁面中拉出。
第一使用loadData
功能:
loadData (data: Array) Reset all cells in the grid to contain data from the data array
這一個是自解釋的。與它的事情是它會自動觸發hot.render()
,以及一些其他事件(如afterChange
)。
如果你不想這樣做,你可以使用更「原始」的第二種方法。這一個涉及基本的JavaScripts原則。 Handsontable初始化時會參考您的data
對象。如果你要改變這個對象,然後渲染,它將與使用loadData
相同,但不觸發事件。
不加載數據消耗處理器時間更多hot.getData()。push(...)? – Vyacheslav
我的代碼和「原始」方法有什麼區別?我想我也是這樣做的。還是我不對? – Vyacheslav
不知道你是如何得出這樣的結論:'loadData'消耗更多的處理器時間,因爲它所做的只是替換數據引用和重新渲染,再加上觸發事件。我想說的是,用你的原始方法,執行'hot.getData()。push(...)'只會讓你推送數據,而不會更新它,而且感覺不是最好的編程方法。在任何情況下,您都應該保留對數據對象的引用,所以直接修改它會更有意義。例如,'hot.getData()'可能會返回一個克隆,而不是引用,所以你會陷入陷阱。 – ZekeDroid