Home  >  Q&A  >  body text

javascript - backbone的previous使用问题

小弟最近学习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?

大家讲道理大家讲道理2653 days ago157

reply all(0)I'll reply

No reply
  • Cancelreply