2013-05-25 3 views
1

내가 Backbone.js을 이해하려고 노력하고 내가 아래의 예와 관련된 질문이 - (이벤트, 콜백 onobject.on -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(); 

이벤트의 구문을 가지고 , [문맥]). 콜백 함수의 위 예제에서 왜 우리는 모델 변수를 전달합니까?

감사합니다. prat.

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

귀하의 코드는 이들의 첫 번째 2를 사용하면 (옵션)를 사용할 수있는 3 개 콜백 인수를 전달 model.change event

답변

6

백본.

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

여기에 행동에 모두 예를 참조 :이 또한 콜백의 this 컨텍스트와 같은 모델을 설정하여 수행 할 수

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

: 색상 변경, 콜백 변경 모델과 새로운 색상을 얻을 때 : http://jsfiddle.net/b7y3W/2/