2016-08-03 7 views
2

Я пытаюсь отобразить список записей с помощью CompositeView, и я не могу идентифицировать событие, которое будет отправлено после рендеринга всех дочерних записей.CompositeView - событие, которое будет отправлено после рендеринга всех дочерних записей

Я пошел через документацию и найти ниже методов, которые еще не работали -

  1. onRenderCollection - после того, как коллекция моделей была оказана
  2. OnRender - после того, как все было вынесено
  3. визуализации: коллекция - пробовал просто ради этого

Ниже текущий фрагмент кода -

 View.childItem = Backbone.Marionette.ItemView.extend({ 
      template: childTpl, 
      tagName: 'tr' 
     }); 


     View.parentPane = Backbone.Marionette.CompositeView.extend({ 
      template: parentTpl, 
      childView: View.childItem, 
      childViewContainer: "#childList", 
      events: { 

      }, 
      onAfterRender: function (ev) { 
       $('tbody').css('height', '210px')); // trying to control the height dynamically.. 
      }, 

     }); 
+0

'childView: View.childTpl' должно быть не' childView: View.childItem' – Quince

+0

Спасибо, исправлено. –

ответ

0

Я думаю, что вы ищете onRender:

Кроме того, после того, как композит был произведен рендеринг, onRender метод будет вызван. Вы можете реализовать это в своем представлении, чтобы предоставить настраиваемый код для работы с el в представлении после его рендеринга.

View.parentPane = Backbone.Marionette.CompositeView.extend({ 
    template: parentTpl, 
    childView: View.childTpl, 
    childViewContainer: "#childList", 
    onRender: function() { 
    $('tbody').css('height', '210px')); // trying to control the height dynamically.. 
    } 
}); 
+0

странно мой onRender стрелял в начале события рендеринга, а не после него, и поэтому надеялся на onAfterRender, который не сработает. –

0

Попробуйте render:collection/onRenderCollection. См. "render" event в документации Marionette.