我正在尝试学习 Backbone.js 并遇到了一个问题。model.save 没有更新我的模型值,尽管 model.fetch 可以很好地更新值。
请在下面查看我的代码,如果我在这里做错了什么,请告诉我:
模型
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}
有趣的是,为了保存,change 事件没有被触发,并且警报框给了我旧的模型值(即 manish),而当 fetch 函数执行时,change 事件被触发并且 fetch 回调给了我新的值(即 logan) .
有人可以帮助我确定我在这里做错了什么吗?