6

我发现理论上ko.cleanNode()如果调用应该从节点中删除绑定,但在这个例子中它似乎不起作用。

Javascript:

// View model
var vm = {
    name: ko.observable("John")
}

// Node to be added
var node = $("<div/>",{
    id: "testing",
    'data-bind' : "text: name()"
});

// First addition to body
$("body").append(node);

// Apply bindings
ko.applyBindings(vm,$("#testing")[0]);

// Remove
ko.cleanNode($("#testing")[0]);

$("#testing").remove();

$("body").append(node);

结果:您可以在jsFiddle中看到,该节点仍然具有附加绑定(事件侦听器)。

4

1 回答 1

8

淘汰赛正在从节点中删除与淘汰赛相关的绑定,但是这样做时,它不会将节点重置为空值。它只是停止从视图模型 vm 自动更新节点。

http://jsfiddle.net/BrsmC/2/

取出更新小提琴的第 21 行。

ko.cleanNode($("#testing")[0]);

当你运行它时你应该会看到,名字现在是'imnotbinding'。

于 2013-08-13T01:16:08.143 回答