我正在研究使用Backbone牽線木偶的應用程序。我有一個包含區域的佈局,這些區域又包含子區域。在父區域的onRender函數中,通過調用「showChildView」函數呈現子區域。我想在呈現子區域之後設置選項卡索引。有沒有辦法知道我的孩子地區是否被渲染?如何知道子區域是否呈現在區域
我試着用昂秀/ onAttach對親區域的觀點。但沒有運氣!
我正在研究使用Backbone牽線木偶的應用程序。我有一個包含區域的佈局,這些區域又包含子區域。在父區域的onRender函數中,通過調用「showChildView」函數呈現子區域。我想在呈現子區域之後設置選項卡索引。有沒有辦法知道我的孩子地區是否被渲染?如何知道子區域是否呈現在區域
我試着用昂秀/ onAttach對親區域的觀點。但沒有運氣!
來檢查區域「myRegion」目前呈現出一個觀點嘗試
var childView = parentView.getRegion('myRegion').currentView;
,那麼你可以檢查視圖已經被渲染
if (childView && childView.isRendered) { ...
在你的情況下,呼叫後「showChildView」你的孩子的意見應呈現,不是嗎?
謝謝!但我的子視圖呈現異步。我什麼時候檢查它們是否被渲染。如果我選擇進行此項檢查,我需要確定它們已被渲染,並且我沒有辦法做到這一點,除非某些事件是從子視圖觸發的。但我有多個子視圖,我需要一種方法來處理異步渲染的所有事件 – user2210060
您可以使用_attach_事件爲每個子視圖添加一個偵聽器:'_.each([... child views。 ..],function(view){this.listenToOnce(view,'attach',function(){/ *增加計數器並在計數器到達子視圖數時執行某些操作* /});},this)'。使用JS6,您還可以使用承諾爲每個視圖渲染方法創建承諾,然後從[Promise.all](http://www.ecma-international.org/ecma-262/6.0/#sec-promise.all)中調用父母。 –
在Chrome瀏覽器開發工具,你可以檢查,如果該地區的DOM元素顯示在源代碼了。如果是,那麼你的區域被渲染。
或者,您還可以通過在子視圖中添加一個onRender()方法並在其中添加一個console.log()語句來進行調試。
只是從子視圖的渲染方法觸發自定義事件..? –
謝謝!但是我有多個子視圖,我需要一種方法來處理所有這些視圖中的事件 – user2210060
您可以從所有視圖中觸發相同的事件並讓父視圖偵聽所有這些視圖......?! –