我使用移动UI框架,它通过ajax加载页面。当更改页面时,它会删除页面dom $ .remove();
我使用knockoutjs来绑定每个页面中的数据。
问题在于删除了页面A.不要删除。然后我再次改为A(来自B页)。它无法应用agin。
我也尝试ko.cleanNode(),然后重新绑定 但是它没有清除foreach节点,那么当ajax重新加载文件时如何重新绑定ko?
答案 0 :(得分:1)
停止使用jQuery来操作DOM。这是Knockout唯一的工作。 Knockout不是绑定数据的工具,Knockout是一个管理DOM的工具。 Knockout提供了诸如交换页面之类的工具(例如,参见Swappable Templates)
如果您使用的是cleanNode
,那么您做错了什么。如果您需要完全更改视图模型, viewmodel本身可以是一个可观察的。
vm = ko.observable(someInitialVm);
ko.applyBindings(vm);
//...at some point...
vm(aWholeDifferentVm);
你可以做到这一点。专注于您的viewmodel。将DOM留给Knockout。