KnockoutJS - ViewModel / Mapping Plugin aktualisieren

Wie kann ich das komplette viewModel aktualisieren?Beim Laden der Seite erhalte ich ein Modell und konvertiere es mitko.mapping.fromJS(myObject) zu einem viewModel.Wenn der Benutzer auf eine Schaltfläche klickt, möchte ich aktualisierte Daten vom Server erhaltenJetzt möchte ich diese Updates anwenden

Wenn ich benutzeko.applyBindings(viewModel); es aktualisiert die Benutzeroberfläche perfekt. Es werden jedoch wieder dieselben Ereignisse hinzugefügt. Wenn der Benutzer auf die Schaltfläche klickt, wird das Ereignis zweimal ausgelöst, als drittes und so weiter.

FrageWas ist ein guter Weg, um mein gesamtes viewModel zu aktualisieren. Vielleicht entferne ich die Bindungen und wende sie wieder an? (Wie macht man das).Probe
var viewModel;

function update() 
{
    $.ajax({
        url: '...',
        type: "GET",
        statusCode: {
            200: function (data) {
                 viewModel = ko.mapping.fromJS(data);
                 ko.applyBindings(viewModel);
            }
        }
    });    
}

// first call after page load
update();

// user click
$("#myButton").click(function() {
    update(); 
});
Aktualisieren

Steve Greatrex Könnten Sie Ihre benutzerdefinierte Bindungsimplementierung veröffentlichen?

ko.bindingHandlers.domBinding = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
        viewModel.domElement = element;
    },
    update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
        viewModel.domElement = element;
    },
};

Antworten auf die Frage(2)

Ihre Antwort auf die Frage