ja backbone.js uczenia się i czują się zagubieni w tej sprawie: śledzę tutorialu: http://arturadib.com/hello-backbonejs/Kiedy należy użyć _.bindAll() w Backbone.js?
jak widać w pierwszym przykładzie (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);
Ale jeśli skomentuję zdanie: _.bindAll(this, 'render');
, to nadal będzie działać. Mam wyszukiwane w google i ktoś powiedział, że metoda bindAll()
jest konieczne, ponieważ jeśli zmieniłem kontekst, wywołanie this.render
może być niedostępne. Czuję się zagubiony w "kontekście". a może ktoś mógłby mi wyjaśnić, kiedy wywołanie (this.render
) będzie niedostępne?
wszystko w wydarzeniach jest automatycznie wiązane przez szkielet, FYI. –
bardzo ładne wyjaśnienie, świetna robota – M3ghana