Javascript HandsOnTable-从0.11.0升级到0.15.0-beta 2后,销毁和重新创建不起作用
我有如下代码: HTML 在页面加载时,它可以很好地工作,并绘制热的页面。但当我更新HOT的一个属性(比如数据和列数)并调用上面的方法时,它在下面失败了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
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();