[英]Ember.js (RC1) CollectionView.didInsertElement fired too early
我正在使用帶有大量子項的擴展Ember.CollectionView
。 在所有孩子都渲染完之后,我需要執行一些由jQuery插件處理的樣式javascript。 我對此的第一次嘗試是利用我所熟悉和喜愛的didInsertElement
鈎子,但看起來這個鈎子為我的目的過早地觸發了。
根據這里的文檔,這個鈎子被解雇了
在將視圖元素插入DOM時調用。 重寫此函數以執行任何需要文檔正文中的元素的設置。
所以,也許,我對Ember如何渲染有誤解,但是由此可以看出我的方法應該有效。
我遇到了一個bug嗎? 這是我誤解的正確功能嗎? 還有除了使用帶有回調的簽入樣式系統以在每個子視圖觸發didInsertElement
時提醒我的規范解決方法嗎?
編輯對於記錄,使用簽入系統確實有效。 每當父類didInsertElement
觸發時,我都會計算哪些子視圖簽入,但我想知道是否有更好的方法。
從技術上講,CollectionView是在它的子節點之前插入的,所以是的,這是正確的功能。 要向CollectionView添加回調,以便在呈現所有子項時,您需要使用afterRender
隊列。
App.ContainerView = Ember.ContainerView.extend({
didInsertElement: function() {
Ember.run.scheduleOnce('afterRender', this, function(){
// this will be performed after every child has been rendered
});
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.