How can i update the complete viewModel ?
- On page load i get a Model and convert that using
ko.mapping.fromJS(myObject)to a viewModel. - If the user clicks a button i want to get updated data from the server
- Now i want to apply theese updates
If i use ko.applyBindings(viewModel); it updates the ui perfectly. But it adds the same events again. So if the user clicks the button, the event gets fired twice, third and so on.
Question
What is a good way to update my complete viewModel. Maybe i remove the bindings and apply them again ? (how to do this).
Sample
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(); }); Update
Steve Greatrex Could you post your custom binding implementation?
ko.bindingHandlers.domBinding = { init: function (element, valueAccessor, allBindingsAccessor, viewModel) { viewModel.domElement = element; }, update: function (element, valueAccessor, allBindingsAccessor, viewModel) { viewModel.domElement = element; }, };
domElementan observable?