2014-01-29 1 views
0

Анализ этого кода Я не уверен, что на самом деле происходит. Я все время попадаю в эту ловушку с JS, особенно с обратными вызовами. Вот пример, взятый из документации магистрали.Каково значение и как используется параметр модели?

//creates a new constructor function with a promptColor function as an attribute.  

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

// creates a property on the global window object called sidebar 

window.sidebar = new Sidebar; 

// .on is an event listener and passed a callback function taking the parameters of model and color. Here is my confusion, what does it do with the model parameter? 

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

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

sidebar.promptColor(); 

Главный вопрос: что он делает с параметром модели? Что это на самом деле делает с параметром модели?

Спасибо!

+0

Ничего, но если это первый, он должен быть там. Если вы не используете его, вы можете назвать его чем угодно, например '_'. – elclanrs

ответ

1

В вашем конкретном случае параметр модели не имеет реального использования, так как их отношение 1 к 1 между событием изменения и моделью.

Однако есть моменты, когда это не так. Например, представьте, что у вас есть базовая коллекция моделей. Вы можете присоединить прослушиватель событий «change» к коллекции, которая будет вызываться каждый раз при изменении любой модели в коллекции. В таких случаях полезно знать, какая модель возникла в результате события «изменения».

Смежные вопросы