Reputation: 362
I wonder if there is any way to update the whole viewmodel with a single object.
For instance, saying our viewmodel is as follows:
Function ExampleViewModel(){
this.name = ko.observable();
this.lastname = ko.observable();
this.phone = ko.observable();
}
var viewmodel = new ViewModel();
ko.applyBindinings(viewmodel);
And then suppose I create an object like:
var newObject = {name: "newname", lastname: "lastname", phone: 432}
Instead of setting individually each observable as follows:
viewmodel.name(newObject.name);
or
viewmodel.name(newObject.name).lastname(newObject.lastname) etc etc
Could I update the whole viewmodel doing something like:
viewmodel.update(newObject)?
Upvotes: 0
Views: 55
Reputation: 15053
Just loop through the object:
for (var key in newObject) {
if (viewModel[key] && ko.isObservable(viewModel[key])) {
viewModel[key](newObject[key]);
}
}
Upvotes: 1