我使用的是敲入式装订。在最初创建表并设置绑定之后,我尝试添加新行或更新现有条目,然后更新表。但是当数据更新时,KnockOut会给我错误消息“您不能对同一个元素多次应用绑定”。这是我的代码
ko.applyBindings(viewModel); $('.tree').treegrid();
juud5qan1#
根据错误,**无法重新绑定已绑定的元素。**清除现有绑定然后重新绑定也不是执行更新的理想方法。根据我们昨晚的聊天,我相信您正在尝试更新表,然后显示反映更新。相反,请考虑以下更新现有KnockOut表的示例。它没有使用jQuery或TreeGrid,但是添加它们应该不是太多的工作。我觉得删除它们简化了这个例子,使它更清楚。否则,这应该是一个动态添加、删除和更改表条目的很好的示例(而不仅仅是在初始化时)。编号第一个我还添加了KnockoutJS站点,它显示了可用于操作这些行的其他方法:KnockoutJS - Observable Arrays
3pvhb19x2#
您应该先清除节点,然后套用挖空系结。
ko.cleanNode($('#html-element-id')[0]); ko.applyBindings(new ViewModel(modelData{}), $('#html-element-id')[0]);
2条答案
按热度按时间juud5qan1#
根据错误,**无法重新绑定已绑定的元素。**清除现有绑定然后重新绑定也不是执行更新的理想方法。
根据我们昨晚的聊天,我相信您正在尝试更新表,然后显示反映更新。
相反,请考虑以下更新现有KnockOut表的示例。
它没有使用jQuery或TreeGrid,但是添加它们应该不是太多的工作。我觉得删除它们简化了这个例子,使它更清楚。
否则,这应该是一个动态添加、删除和更改表条目的很好的示例(而不仅仅是在初始化时)。
编号
第一个
我还添加了KnockoutJS站点,它显示了可用于操作这些行的其他方法:KnockoutJS - Observable Arrays
3pvhb19x2#
您应该先清除节点,然后套用挖空系结。