Backbone.js を学習しようとしていますが、問題が発生しています。model.fetch は値を正常に更新しますが、model.save はモデル値を更新しません。
以下の私のコードを見て、ここで何か間違っているかどうか教えてください:
モデル
var Person = Backbone.Model.extend({
url: "CreatePerson",
defaults: {
name: "",
age: 0
},
initialize: function(){
this.on("change:name",function(){
alert("Updated value is: "+this.get("name"));
});
}
});
私は自分のhtmlページでこのモデルのインスタンスを作成しています。コードは次のとおりです。
var person = new Person({name:"manish"});
person.save(person,{
wait: true,
success: function(){
alert("Data saved: "+person.toJSON().name);
},
error: function(){
alert("Sorry, something wrong went with the system");
}
});
person.fetch({
success: function(){
alert("Data Fetched: "+person.get("name"));
}
});
保存とフェッチの両方で、サーバーから次の JSON データを返しています。
{"name":"Logan","age":23}
興味深いことに、保存の場合、変更イベントは発生せず、アラート ボックスには古いモデル値 (つまり、manish) が表示されますが、フェッチ関数が実行されると、変更イベントが発生し、フェッチ コールバックによって新しい値 (つまり、logan) が表示されます。 .
ここで私が間違っていることを誰かが特定するのを手伝ってくれますか?