2013-05-25 59 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/