小弟最近学习backbone的时候遇到了一个问题。backbone有一个previous方法,这个方法可以获取model的在改变前的属性值。例如文档给的例子:
var bill = new Backbone.Model({
name: "张三"
});
bill.on("change:name", function(model, name) {
alert("Changed name from " + bill.previous("name") + " to " + name);
});
bill.set({name : "李四"});
然后这是我学习中的:
var a = Backbone.Model.extend({
initialize:function () {
this.on('change:age',function () {
var old = this.previous('age');
var newitem = this.get('age');
if(old != newitem){
console.log('age 发生了变化');
console.log('之前是'+old);
console.log('之后是'+newitem);
}
})
},
default:{
name:'张三',
age:19
}
});
var b = new a();
b.on("change:name", function(model, name) {
console.log("Changed name from " + b.previous("name") + " to " + name);
});
b.set({age:20});
b.set({name:'a'});
这个例子照书上写的,那么问题来了为什么我的previous()
方法返回的是undefined?