我最近尝试使用 Backbone,并想问一个基本问题。此视图正在按您的预期呈现:
(function($){
var ListView = Backbone.View.extend({
tagName: 'div',
el: $('header'),
initialize: function(){
_.bindAll(this, 'render');
this.render(); // not all views are self-rendering. This one is.
},
render: function(){
$(this.el).html("<ul> <li>hello world</li> </ul>");
}
});
var listView = new ListView();
})(jQuery);
我的问题是,为什么我不能不使用初始化函数并输入:
(function($){
var ListView = Backbone.View.extend({
tagName: 'div',
el: $('header'),
render: function(){
$(this.el).html("<ul> <li>hello world</li> </ul>");
}
});
this.render(); //No html is rendered on the page
var listView = new ListView();
})(jQuery);
我查看了源代码,初始化函数默认是一个空函数,这让我很惊讶。我觉得答案很直接,希望有经验的 Backbone.js 开发人员的智慧。谢谢!