[英]Ember.js: How do I hook Ember.CollectionView after every child view is rendered?
這個問題表明,覆蓋Ember.View實例的didInsertElement
允許您在視圖的元素位於DOM之后執行一些代碼。
當然,在添加到didInsertElement
的子視圖類上覆蓋didInsertElement
將在呈現和插入每個子視圖后運行鈎子。
Ember.CollectionView, arrayDidChange
和contentDidChange
上的兩個面向集合的掛鈎在底層內容發生更改后執行,但它們在任何呈現發生之前執行。 對添加到數組的每個元素執行arrayDidChange
,並且contentDidChange
包裝內容綁定。
我希望能夠鈎住渲染管道,比如willInsertCollection
和didInsertCollection
,在渲染所有子元素之前和之后操作DOM - 實際上,在contentBinding
過濾器之前和之后。
有任何想法嗎? 我很難過。
如果您想要在呈現視圖之前和/或之后執行某些willInsertElement
, didInsertElement
分別使用willInsertElement
和/或didInsertElement
。 在這種情況下,由於您希望“在渲染所有子元素之前和之后操作DOM”,您應該在CollectionView上調用它們。
我不太確定你的意思是“在contentBinding
過濾器之前和之后”,所以如果這不能回答你的問題,如果你能澄清我會很樂意提供幫助。
我想在推送新對象后應用滾動動畫來滑動列表。 該列表使用ArrayController和#each
幫助器進行渲染。 簡單地在推送對象之后觸發視圖訂閱的控制器上的事件導致動畫在實際呈現內容的更改之前執行。 以下技術對我來說非常合適。
//excerpt from my loadMore method on the ArrayController
var self = this;
self.content.pushObjects(moreItems);
Ember.run.scheduleOnce('afterRender', this, function()
{
self.trigger('loadMoreComplete');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.