Knockout.js Kendo Knockout:调用一个方法,该方法从网格内具有数据绑定的模板更改viewmodel属性(更新为Knockout 2.3.0)
我正在使用RPNiemeyer的剑道击倒库,并试图在剑道格中的模板内使用数据绑定。以前的问题有一个刷新绑定的解决方案,但在我更新到knockout.js 2.3.0之后,这个解决方案就不再有效了。现在,knockout.js在对同一元素多次执行ko.applyBindings时引发异常 我也尝试过使用敲除模板和useKOTemplates来实现它,但是通过单击列标题对网格进行排序不再有效Knockout.js Kendo Knockout:调用一个方法,该方法从网格内具有数据绑定的模板更改viewmodel属性(更新为Knockout 2.3.0),knockout.js,kendo-ui,Knockout.js,Kendo Ui,我正在使用RPNiemeyer的剑道击倒库,并试图在剑道格中的模板内使用数据绑定。以前的问题有一个刷新绑定的解决方案,但在我更新到knockout.js 2.3.0之后,这个解决方案就不再有效了。现在,knockout.js在对同一元素多次执行ko.applyBindings时引发异常 我也尝试过使用敲除模板和useKOTemplates来实现它,但是通过单击列标题对网格进行排序不再有效 有没有办法解决这个问题,或者我有没有使用kendo MVVM来解决这个问题?对于这个特定的场景,您应该能够在
有没有办法解决这个问题,或者我有没有使用kendo MVVM来解决这个问题?对于这个特定的场景,您应该能够在
数据绑定
回调中添加一个ko.cleanNode
调用。比如:
ko.bindingHandlers.kendoGrid.options.dataBound = function(data) {
var body = this.element.find("tbody")[0];
if (body) {
ko.cleanNode(body);
ko.applyBindings(ko.dataFor(body), body);
}
};
这很有效。非常感谢。不过,我有一点共识,即这种重新应用绑定的方法性能不是很好。我每隔15秒左右就要轮询一次数据。数据量并没有那么大。您认为呢?这种技术并不理想(我希望在库中的某个时候对其进行改进),但在您的场景中,它听起来并不是一个问题。内容被调出,然后反弹。之所以使用
cleanNode
,是因为根节点仍然存在。结果表明,此解决方案会导致内存泄漏,因为ko.cleanNode不会删除事件侦听器。看见