2013-05-25 24 views
1

我想了解Backbone.js的,我有相关的下面的例子一个问题 -Backbone.js的事件的回调函数

var Sidebar = Backbone.Model.extend({ 
    promptColor: function() { 
    var cssColor = prompt("Please enter a CSS color:"); 
    this.set({color: cssColor}); 
    } 
}); 

window.sidebar = new Sidebar; 

sidebar.on('change:color', function(model, color) { 
    $('#sidebar').css({background: color}); 
}); 

sidebar.set({color: 'white'}); 

sidebar.promptColor(); 

的事件有语法 - onobject.on(事件,回调,[context])。在回调函数中的上面例子中,我们为什么要传递模型变量?

谢谢, prat。

model.on("change:[attribute]", function(model, value, options), [context]); 

代码使用的这些第2:

回答

6

model.change event传递,可以(可选地)使用3个回调参数的骨干。当颜色的变化,回调得到改变了模型和新的颜色:

sidebar.on('change:color', function(model, color) {   
    $('#sidebar').css({background: color}); 
}); 

这也可以通过设置模型作为回调的this背景下完成的:

sidebar.on('change:color', function() { 
    $('#sidebar').css({background: this.get('color')}); 
}, sidebar); 

看到这两个例子在行动这里:http://jsfiddle.net/b7y3W/2/