次のコードがあります
var Person = function() {
firstName = ko.observable();
lastName = ko.observable();
};
function AppViewModel() {
var self = this;
self.personData = ko.observable(new Person());
self.newPerson = ko.observable(new Person());
self.savePerson = function() {
// ajax call
// self.personData will be empty - why?
console.log(ko.toJSON(self));
};
self.newPerson = function() {
self.newPerson = ko.observable(new Person()); // this makes the object disappear from the model, dunno why
};
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());
「Person」を「PersonData」オブザーバブルにバインドし、新しいボタンがクリックされたときにその「PersonData」をリセットしようとしていますが、モデルをシステムに戻すと空になります。
ここのjsfiddle http://jsfiddle.net/DiegoVieira/SKVRm/