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控制檯輸出:
由於可以看到,在abstractcomponent.store.data
中,記錄了第三項,項目顯示爲空。然而,如果我鑽入,項目是一個有三個條目的數組。
顯然我正在做一些根本性的錯誤。我很欣賞關於如何從After Render處理程序中訪問商店數據的建議,以及是否存在某種基本的ExtJS/JavaScript/JavaScript控制檯誤解,因爲它對我來說沒有任何意義。
如果這是在Chrome中,請注意它具有處理'console.log'的「怪癖」,所以它可能是「延遲評估」的問題。查看是否強制立即轉換爲字符串(在將值傳遞給'console.log'之前)使其產生預期結果。 – 2013-01-02 05:48:54
有趣。它是Chrome瀏覽器,但使用Firefox/Firebug時,我得到了相同的結果 - collacomppsed時顯示的abstractcomponent.store.data顯示屬性項爲零長度數組,但在鑽入時,同一個屬性顯示它具有預期的3個項目 - - 我無法以編程方式訪問。 – emgee