2013-05-06 50 views
0

我在瀏覽器中遇到QlikView問題:我有一個列表框,並嘗試使用初始化腳本訪問它。QlikView過早運行BodyOnLoadFunctionNames回調 - 爲什麼?

該腳本通過使用InitWorkbench函數使用其BodyOnLoadFunctionNames參數進行註冊。到目前爲止,這是有效的,並且初始化器在啓動時運行。

初始化裏面我儘量做到以下幾點:

var doc = Qv.GetCurrentDocument(); 
var listbox = doc.GetObject('LB01'); 

之後,當我在listbox.Type看看,遺憾的是它是undefined。如果我延遲執行這個查詢,它正確地說LB,因此顯然這個查詢是有效的 - 但只有當它延遲執行時。

所以,obviuosly有一個計時問題,它似乎像初始化器運行得太早(或我做錯了什麼)。

有人可以指出解決方案是什麼(或給我一個暗示我做錯了什麼)?

回答

0

好吧,我找到了解決方案:內部更新功能還沒有運行,並且所有的值只有在此功能運行後纔可用,所以您需要提供回調至GetObject(即被調用更新功能後):

var doc = Qv.GetCurrentDocument(); 
var listbox = doc.GetObject('LB01', function() { 
    console.log(listbox.Type); // => 'LB' 
}); 
相關問題