2013-03-14 34 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