Javascript 如何解决敲除applyBindingsToNode添加多个元素的问题?

Javascript 如何解决敲除applyBindingsToNode添加多个元素的问题?,javascript,jquery,html,knockout.js,Javascript,Jquery,Html,Knockout.js,我正在尝试使用knockout applybindingstoode动态添加和删除元素。原因是我需要更新我的html,这样绑定将被剪切,这就是为什么我需要使用applyBindingsToNode 我有一个例子,如果你点击按钮重新绑定名称,它将添加四个元素,但我只期望2。我错过了什么 这是我的护照 我认为您应该只更新数组,它将更新相应的html元素。 我将在不重新绑定的情况下更新html 请看下面的链接,情况是一样的 我用这个建议更新了我的JSFIDLE,但它仍然不起作用。 var Model

我正在尝试使用knockout applybindingstoode动态添加和删除元素。原因是我需要更新我的html,这样绑定将被剪切,这就是为什么我需要使用applyBindingsToNode

我有一个例子,如果你点击按钮重新绑定名称,它将添加四个元素,但我只期望2。我错过了什么

这是我的护照


我认为您应该只更新数组,它将更新相应的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'));