Я недавно пробовал использовать Backbone и хотел задать основной вопрос. Эта точка зрения рендеринга, как и следовало ожидать:Функция инициализации Backbone.js - зачем мне это нужно?
(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. Благодаря!
Вы не всегда нужна функция инициализации (в вашем случае, например, вы можете просто вызвать метод визуализации, когда вы его экземпляр), но это очень полезно, когда вам необходимо пройти в определенных вариантах вашего представления, когда вы его создаете или выполняете некоторую настройку. – Jack