2013-01-02 55 views
1

我使用Sencha Architect 2創建應用程序。在寫入無法訪問數據的事件處理程序時,我遇到了幾個不同時間的問題。在ExtJS4中,爲什麼參數可記錄但不能通過編程訪問?

具體而言,我想編寫一個AfterRender函數以編程方式選擇組合框中的第一個項目。組合框從JSON存儲中填充,加載正常。我不能夠訪問加載的數據,所以我必須在函數下面的代碼登錄什麼是可用:

onComboboxAfterRender: function(abstractcomponent, options) { 
    // abstractcomponent.value = abstractcomponent.store.data.items[0].date; 
    console.log(abstractcomponent); 
    console.log(abstractcomponent.store); 
    console.log(abstractcomponent.store.data); 
    console.log(abstractcomponent.store.data.items); 
    console.log(abstractcomponent.store.data.items[0]); 
} 

以下是JavaScript控制檯輸出:

console.log output

由於可以看到,在abstractcomponent.store.data中,記錄了第三項,項目顯示爲空。然而,如果我鑽入,項目是一個有三個條目的數組。

顯然我正在做一些根本性的錯誤。我很欣賞關於如何從After Render處理程序中訪問商店數據的建議,以及是否存在某種基本的ExtJS/JavaScript/JavaScript控制檯誤解,因爲它對我來說沒有任何意義。

+0

如果這是在Chrome中,請注意它具有處理'console.log'的「怪癖」,所以它可能是「延遲評估」的問題。查看是否強制立即轉換爲字符串(在將值傳遞給'console.log'之前)使其產生預期結果。 – 2013-01-02 05:48:54

+0

有趣。它是Chrome瀏覽器,但使用Firefox/Firebug時,我得到了相同的結果 - collacomppsed時顯示的abstractcomponent.store.data顯示屬性項爲零長度數組,但在鑽入時,同一個屬性顯示它具有預期的3個項目 - - 我無法以編程方式訪問。 – emgee

回答

0

這是一個參考。當您將其輸出到控制檯時,商店尚未填充。

但是,當您使用Chrome/Firebug並展開控制檯時,它現在已經存在並且將被填寫。

相關問題