簡體   English   中英

Ember.js(RC1)CollectionView.didInsertElement過早發生

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM