Я не уверен на 100%, что я полностью понимаю, что вы хотите, но я сделаю это.
Вы определили свою модель так:
var ViewModel = function(foobar)
{
this.foo = ko.observable(foobar.foo);
this.bar = ko.observable(foobar.bar);
}
вы инициализировали свою нокаут-модель с var derp = { "foo": 1, "bar": 2 };
намного более сложным объектом.
Таким образом, ваши входные данные получат эти значения благодаря тегу data-bind
. Затем вы изменяете эти входные значения, затем нажимаете кнопку сохранения и хотите обновить исходный объект javascript.
Если бы это было так, я бы склонялся к этому ...
Измените вашу модель представления на эту:
var ViewModel = function(foobar)
{
this.foo = ko.observable(foobar.foo);
this.bar = ko.observable(foobar.bar);
save: function() { derp.foo = this.foo;
derp.bar = this.bar;
// ko.utils.postJson(location.href, { obj1: this.foo, obj2: this.bar });
}
}
А затем измените событие нажатия кнопки на: ViewModel.save();
Я добавил объект postJson в качестве примера, потому что именно так я обрабатываю данные этого типа. Я смотрю на переменную, которую вы передаете в исходное определение ViewModel
, именно на это. Вот мои данные, с которых я хочу предварительно заполнить свою модель представления, и с этого момента я использую свою модель представления для всего. После того, как вы примете это мышление, вам не нужно будет обновлять исходный объект.