当ajax重新加载文件时,knockoutjs会重新绑定

时间:2016-08-26 02:54:33

标签: ajax mobile knockout.js

我使用移动UI框架,它通过ajax加载页面。当更改页面时,它会删除页面dom $ .remove();

我使用knockoutjs来绑定每个页面中的数据。

问题在于删除了页面A.不要删除。然后我再次改为A(来自B页)。它无法应用agin。

我也尝试ko.cleanNode(),然后重新绑定 但是它没有清除foreach节点,那么当ajax重新加载文件时如何重新绑定ko?

1 个答案:

答案 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。