이론상으로 ko.cleanNode()
이 호출되면 노드에서 바인딩을 제거해야하지만, this example은 작동하지 않는 것으로 나타났습니다.녹아웃 노드에서 바인딩을 제거하는 방법?
자바 스크립트 :
// 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에서 볼 수 있습니다.
표준 KO 바인딩은 이벤트 리스너를 그대로 추적하지 않습니다. 'cleanNode'는 "internal bindings"를 제거합니다. http://stackoverflow.com/a/15069509/2246674를 참조하십시오 - 저는 KO와 함께 놀고 싶을 때 단순히 그것을하는 것이 가장 좋습니다. – user2246674