【发布时间】:2015-06-23 17:16:05
【问题描述】:
在我的项目中,我有一个 <div>,我专门在其中应用了我的 Knockout.js 绑定。我必须根据用户点击的内容在该区域实例化不同的视图模型。
为了防止出现无法在同一个元素上调用绑定两次错误,我首先必须“清理”绑定以使该区域再次可用。我调用初始的applyBindings() 函数:
ko.applyBindings(new ViewModel("Planet", "Earth"), document.getElementById("bindings-area"));
最后,我会清理 <div> 并调用新的绑定:
var element = $("#bindings-area")[0];
ko.cleanNode(element);
ko.applyBindings(new ViewModel("NEW", "Bindings"), document.getElementById("bindings-area"));
问题:当我在 #bindings-area div 中包含一个 HTML 按钮时,在我清理绑定并实例化新模型后,它将不再起作用。我确信这与 ko.cleanNode() 函数以某种方式删除了 button 绑定有关。我怎样才能重新启动它们或首先阻止cleanNode() 对按钮进行操作?
【问题讨论】:
标签: javascript jquery html button knockout.js