sto backbone.js imparando, e si sentono confusi su questo: Seguo il tutorial: http://arturadib.com/hello-backbonejs/Quando è necessario utilizzare _.bindAll() in Backbone.js?
come si può vedere nel primo esempio (1.js):
(function($){
var ListView = Backbone.View.extend({
el: $('body'), // attaches `this.el` to an existing element.
initialize: function(){
_.bindAll(this, 'render'); // fixes loss of context for 'this' within methods
this.render(); // not all views are self-rendering. This one is.
},
render: function(){
$(this.el).append("<ul> <li>hello world</li> </ul>");
}
});
var listView = new ListView();
})(jQuery);
Ma se commento la frase: _.bindAll(this, 'render');
, funzionerà ancora. Ho cercato su google e qualcuno ha detto che il metodo bindAll()
è necessario poiché se ho cambiato il mio contesto, la chiamata di this.render
potrebbe non essere disponibile. Mi sento confuso sul "contesto". e anche qualcuno potrebbe spiegarmi quando la chiamata (this.render
) non sarà disponibile?
qualsiasi cosa negli eventi è legata automaticamente da backbone, FYI. –
spiegazione molto bella, ottimo lavoro – M3ghana