2011-09-24 30 views
0

所以我有一個應用程序用於瞭解有關觸摸的更多信息。我得到了基於我在網絡上發現的教程的基本框架設置,我可以在應用程序中點擊事物來反彈。我整合了一個sencha觸控折線圖,效果很好。Sencha Touch:MVC應用程序中的動態圖表標籤

問題是我想基於從服務器返回的數據填充圖表的系列標籤,而不是硬編碼標籤。我的計劃是要執行一次:

Ext.redirect('Chart/Index'); 

我會打的控制器和裝載存儲。在商店的onLoad監聽器中,返回數據後,填充該系列中的標題數組並呈現圖表。我嘗試將客戶監聽器附加到圖表視圖,然後從商店監聽器執行它。

listeners: { 
    load:function(el,records, success){ 
     App.fireEvent('myListener', records); 
    } 
}, 

這不適合我,監聽器是未定義的(我確實在圖表視圖中定義了它)。所以這不是我的解決方案。

然後我試圖給圖表一個id,並做一個Ext.query(#myChartName);這返回一個html元素,而不是包含在可以執行的Ext中的東西。

現在它extsj4,我可以在控制器中放置一個商店的偵聽器,並在控制器中定義一個方法來執行。它可以很容易地訪問控制器內的任何組件,並將是我將如何解決這個問題。但是,這似乎並不是MVC在觸摸應用程序中的工作原理。我所看到的例子事實上已經大不相同。 (爲什麼這btw?)

我的最佳解決方案是在我的商店中加載數據並填充圖表中的標籤/圖例後,我的最佳解決方案是什麼?

UPDATE 添加了相關代碼的鏈接。我正在嘗試將字符串(標籤名稱)添加到系列中的標題數組中。請注意商店的圖表視圖&。

圖視圖

http://jsfiddle.net/5JhCu/2/

控制器

http://jsfiddle.net/3C4Tq/1/

商店

http://jsfiddle.net/LT6eh/

僅供參考,我嘗試添加聽者畝在應用程序,視圖,控制器內的一些東西/對象,仍然沒有運氣。

回答

1

您是否嘗試使用Ext.getCmp('myChartId')來訪問圖表組件?

+0

不,我沒有,雖然過去曾在extjs應用程序中工作過。我認爲有一個更加優雅的解決方案,並且在過去被告知要儘可能避免這種情況。我希望學習更好的解決方案。 – Nathan

+0

我想我只是爲了不返回組件的Ext.query的替代。如果你可以在jsfiddle上分享你的源代碼,或者我們可以更深入地瞭解它。 – rwilliams

+0

謝謝。我通過指向代碼重要部分的鏈接更新了原始問題 – Nathan