J'essaie d'apprendre Backbone js, et j'ai du mal à comprendre la différence entre les liaisons d'événements utilisant les fonctions bindAll/bind fournies par la bibliothèque underscore et la fonction on fournie par jQuery. Voici un exemple en Coffeescript :
class Raffler.Views.Entry extends Backbone.View
template: JST['entries/entry']
tagName: 'li'
events:
'click': 'showEntry'
initialize: ->
@model.on('change',@render,this)
@model.on('highlight',@highlightWinner,this)
showEntry: ->
Backbone.history.navigate("entries/#{@model.get('id')}", true)
highlightWinner: ->
$('.winner').removeClass('highlight')
@$('.winner').addClass('highlight')
render: ->
$(@el).html(@template(entry: @model))
this
This is a snippet of code from Ryan Bate's RailsCasts' on Backbone.js
Seems to me that the same code can be written using the underscore bindAll and bind functions as follows:
class Raffler....
...
initialize: ->
_bindAll @, 'render', 'highlightWinner'
@model.bind 'change',@render
@model.bind 'highlight',@highlightWinner
...
Questions :
- Ces deux éléments sont-ils équivalents d'un point de vue fonctionnel ?
- Si oui, le code de jQuery semble beaucoup plus clair et explicite. S'agit-il simplement d'une question de préférence personnelle ?
Merci d'avance pour votre temps.
Bharat