2013-03-14 33 views
1

我有以下Handlebars模板,其中包含一些#each输出的视图。Ember JS - 视图插入事件

<script type="text/x-handlebars" data-template-name="thread"> 
    {{#view My.ContainerView}} 
     {{#each message in messages}} 
      {{view My.MessageView contentBinding="message"}} 
     {{/each}} 
    {{/view}} 
</script> 

我正在使用didInsertElement事件来捕获父视图的插入。

我知道有didInsertElement解雇每个My.MessageView的插入,但我不知道是如果有一个事件时所有My.MessageViews的插入解雇?这意味着#each已完成。也许有一个类似的事件让视图完全呈现?

//灰烬Noobie

回答

1

我碰到了类似的情况,在问候后孩子的意见已呈现,其中火一个jQuery事件。从这个论坛的一些帮助,我结束了这样的事情:

下面的视图为每个项目,我ajax(对于自举手风琴)呈现一次。

App.AccItemView = Em.View.extend 
    classNames: ['accordion-group'] 
    templateName: 'acc_item' 
    didInsertElement: -> 
    Ember.run.next this, -> 
     @.$('.collapse').collapse({parent:"#accordion2"}) 

还有一个afterRender挂钩,我仍在试验自己。

didInsertElement: -> 
    Ember.run.scheduleOnce 'afterRender', this,() -> 
     @.$('.collapse').collapse({ parent:'#accordion2'}) 

提琴在这里,如果没有任何用处的。 http://jsfiddle.net/nrionfx/s59fA/16/

+0

事件按以下顺序发生:1)。父视图:didInsertElement 2)。子视图:didInsertElement。 3)。父视图:afterRender。 4)。子视图:afterRender。我认为我期望的是3)和4)将被交换。那么当所有的子视图都完全呈现时,你就会有一个事件。 – johnnymire 2013-03-18 14:45:38