javascript – 如何从淘汰赛中的节点中删除绑定?

前端之家收集整理的这篇文章主要介绍了javascript – 如何从淘汰赛中的节点中删除绑定?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现理论上ko.cleanNode()应该从节点中删除绑定,如果被调用,但在 this example中它似乎不起作用.

使用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中看到该节点仍然具有附加绑定(事件侦听器).

解决方法

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

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

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

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

您应该看到在运行它时,名称现在是“imnotbinding”.

猜你在找的JavaScript相关文章