Javascript HandsOnTable-从0.11.0升级到0.15.0-beta 2后,销毁和重新创建不起作用

Javascript HandsOnTable-从0.11.0升级到0.15.0-beta 2后,销毁和重新创建不起作用,javascript,jquery,handsontable,Javascript,Jquery,Handsontable,我有如下代码: HTML 在页面加载时,它可以很好地工作,并绘制热的页面。但当我更新HOT的一个属性(比如数据和列数)并调用上面的方法时,它在下面失败了 rangePriceGrid = $('#rangePricesGrid').handsontable(setRangeGridOptions); 错误地 Uncaught Error: This method cannot be called because this Handsontable instance has been destr

我有如下代码:

HTML

在页面加载时,它可以很好地工作,并绘制热的页面。但当我更新HOT的一个属性(比如数据和列数)并调用上面的方法时,它在下面失败了

rangePriceGrid = $('#rangePricesGrid').handsontable(setRangeGridOptions);
错误地

Uncaught Error: This method cannot be called because this Handsontable instance has been destroyed
我做错了什么?我知道热表已被破坏,但我正在尝试使用更新的选项重新创建它


请建议

我想您知道您正在销毁该实例,但不知道如何重新创建该实例。首先,可以查看
setRangeGridOptions
,也可以查看JSFIDLE。如果您正在使用jQuerySelector.handsontable(options)方法实例化handsontable,那么这可能是问题的原因

您是否考虑过手动删除对上一个热实例的引用以避免出现此问题?尝试以以下方式实例化HOT:

var hot = new Handsontable($('#rangePricesGrid')[0], setRangeGridOptions)
这样,您应该能够销毁
hot
实例,并且您的代码应该开始工作。要销毁热实例,只需执行以下操作:

hot.destroy()
要重新创建它,您可以重复使用上面的行。

您可以这样做

// incorrect var rangePriceGrid = $('#rangePricesGrid').handsontable('getInstance'); rangePriceGrid.destroy(); // correct $('#rangePricesGrid').destroy(); //不正确 var rangePriceGrid=$(“#rangePricesGrid”).handsontable('getInstance'); rangePriceGrid.destroy(); //正确的 $(“#rangePricesGrid”).destroy();
使用!==而不是==。!==检查类型和值,!=当两个变量的类型不同时,尝试以无法描述的方式强制。
hot.destroy()
// incorrect var rangePriceGrid = $('#rangePricesGrid').handsontable('getInstance'); rangePriceGrid.destroy(); // correct $('#rangePricesGrid').destroy();