Tôi backbone.js học, và cảm thấy bối rối về điều này: tôi đang theo hướng dẫn: http://arturadib.com/hello-backbonejs/Khi nào tôi cần sử dụng _.bindAll() trong Backbone.js?
như bạn có thể thấy trong ví dụ đầu tiên (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);
Nhưng nếu tôi nhận xét câu: _.bindAll(this, 'render');
, điều này sẽ vẫn hoạt động. Tôi đã tìm kiếm trong google và ai đó nói rằng phương pháp bindAll()
là cần thiết vì nếu tôi đã chuyển ngữ cảnh của mình, việc gọi số this.render
có thể không khả dụng. Tôi cảm thấy bối rối về "ngữ cảnh". và cũng có thể một số người có thể giải thích cho tôi khi gọi (this.render
) sẽ không có sẵn?
bất cứ điều gì trong các sự kiện đã bị ràng buộc tự động bởi xương sống, FYI. –
giải thích rất hay, công việc tuyệt vời – M3ghana