Понимание жизненного цикла Backbone и Marionette View

я новичок в этом мире, и мне нужно понять некоторые из концепций позвоночника и марионетки. Здесь я пытаюсь объяснить некоторые из понятий, которые я изучаю. Было бы здорово иметь некоторую обратную связь на них.

на render функция определяет логику отрисовки шаблона. Когда он закончен,onRender обратного вызова вызывается. Здесь я предполагаю, что визуализированный вид не был прикреплен к DOM. Он состоит из tagName (по умолчанию -div), который содержит шаблон, который я прикрепил к нему. Чтобы конкретно вставить этот тег в DOM, мне нужно добавить где-то. Я ошибаюсь?

В общем, я делаю следующее.

var view = new MyView();
view.render();
$("container").append(view.$el);​

марионетка расширяет костяк с концепцией регионов. The show метод может быть вызван в области для представления определенного представления.

var view = new MyView();
region.show(view);

в этом случае show метод будет вызывать

1 ответов


как бы то ни было, я считаю, что все, что вы сказали, более или менее правильно.

глядя на источник (доступно здесь -- ищите "DomRefresh") биты MonitorDOMRefresh смешиваются с каждым представлением и добавляют этот API:

return function(view){
  view.listenTo(view, "show", function(){
    handleShow(view);
  });

  view.listenTo(view, "render", function(){
    handleRender(view);
  });
};

так действительно, все, что происходит, это вложение 2 прослушивателей событий в представление и обратные вызовы (handleShow/handleRender) установить логическое _isShown или _isRendered и звонок triggerDomRefresh, которым говорит:

function triggerDOMRefresh(view){
  if (view._isShown && view._isRendered){
    if (_.isFunction(view.triggerMethod)){
      view.triggerMethod("dom:refresh");
    }
  }
}

Итак, вот вы идете... onDomRefresh будет вызываться в любое время, когда представление было отображено, показано, а затем повторно отображено.

надеюсь, что это поможет!