2

次のコードがあります

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/

4

1 に答える 1

2

newPerson関数にバグがあり、構文が正しい

self.personData(new Person());

http://jsfiddle.net/SKVRm/3/

編集:あなたは間違ったメンバーを割り当てられました、そしてあなたはまた、バインディングでpersonDataにバインドされている古いオブザーバブルを更新するのではなく、新しいオブザーバブルを再割り当てされました

于 2013-01-22T15:31:27.953 に答える