我正在與一大羣孩子一起擴展Ember.CollectionView
。我需要在所有孩子都渲染完成後執行一些由jQuery插件處理的樣式化javascript。我的第一次嘗試是利用我熟悉並喜愛的didInsertElement
掛鉤,但看起來這個掛鉤爲我的目的過早燃燒。Ember.js(RC1)CollectionView.didInsertElement發射得太早
根據文檔here,該鉤子被觸發時
當視圖的元件已被插入到所述DOM調用。覆蓋此功能可進行任何需要文檔正文中元素的設置。
或許,我對Ember如何呈現有誤解,但是由此可以看出我的方法應該起作用。
我遇到錯誤嗎?這是我錯誤理解的正確功能嗎?除了使用帶回調的簽入樣式系統以提醒我每個子視圖何時觸發了didInsertElement
之外,是否有規範的解決方法?
編輯爲了記錄,使用簽入系統確實有效。每當父母didInsertElement
開火時,我都會記錄下哪些子視圖會被檢查,但我想知道是否有更好的方法來執行此操作。
感謝您的回答。不幸的是,看起來afterRender隊列並不像我們希望的那樣工作。我在父視圖,afterRender隊列和子視圖的didInsertElement上設置了didInsertElement的日誌記錄,這就是我在日誌中看到的:https://gist.github.com/grep-awesome/5099953。它顯示在任何子視圖呈現之前發生'afterRender'調用 – wmarbut 2013-03-06 15:15:16
您是否異步地爲集合視圖後面的數組加載內容? – 2013-03-07 02:51:07
我覺得有點像笨蛋......是的,是的,我正在異步加載它。所以我接受這個問題,從我原來的問題的範圍來看,這是答案。謝謝 – wmarbut 2013-03-07 14:54:01