Javascript 如何解决敲除applyBindingsToNode添加多个元素的问题?
我正在尝试使用knockout applybindingstoode动态添加和删除元素。原因是我需要更新我的html,这样绑定将被剪切,这就是为什么我需要使用applyBindingsToNode 我有一个例子,如果你点击按钮重新绑定名称,它将添加四个元素,但我只期望2。我错过了什么 这是我的护照Javascript 如何解决敲除applyBindingsToNode添加多个元素的问题?,javascript,jquery,html,knockout.js,Javascript,Jquery,Html,Knockout.js,我正在尝试使用knockout applybindingstoode动态添加和删除元素。原因是我需要更新我的html,这样绑定将被剪切,这就是为什么我需要使用applyBindingsToNode 我有一个例子,如果你点击按钮重新绑定名称,它将添加四个元素,但我只期望2。我错过了什么 这是我的护照 我认为您应该只更新数组,它将更新相应的html元素。 我将在不重新绑定的情况下更新html 请看下面的链接,情况是一样的 我用这个建议更新了我的JSFIDLE,但它仍然不起作用。 var Model
我认为您应该只更新数组,它将更新相应的html元素。 我将在不重新绑定的情况下更新html 请看下面的链接,情况是一样的
我用这个建议更新了我的JSFIDLE,但它仍然不起作用。
var Model = function Model() {
var people = ko.observableArray([{
name: 'name1'
}, {
name: 'name2'
}]);
var changeElement = function () {
people.push({
name: 'name3'
});
};
var rebindElement = function () {
var peopleList = document.getElementById('people_list');
ko.cleanNode(peopleList);
ko.applyBindingsToNode(peopleList, {
foreach: [{
name: 'name3'
}, {
name: 'name4'
}]
});
};
return {
people: people,
changeElement: changeElement,
rebindElement: rebindElement
};
};
ko.applyBindings(new Model(), document.getElementById('wrapper'));