Sencha Touch:MVC应用程序中的动态图表标签

时间:2011-09-24 23:56:42

标签: sencha-touch extjs sencha-charts

所以我有一个应用程序,我用来了解更多关于触摸。我得到了基于我在网络上找到的教程的基本框架设置,我可以在应用程序上点击某些东西。我整合了一个工作正常的sencha触摸线图表。

问题是我想根据从服务器返回的数据填充图表的系列标签,而不是硬编码标签。我的计划是一次执行:

Ext.redirect('Chart/Index');

我会点击那个控制器并加载商店。在商店的onLoad侦听器中,一旦返回数据,就填充系列中的标题数组并渲染图表。我尝试将客户监听器附加到图表视图,然后从商店监听器执行它。

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

这对我不起作用,监听器未定义(我确实在图表视图中定义了它)。所以这不是我的解决方案。

然后我尝试给图表一个id,并做一个Ext.query(#myChartName);这返回了一个html元素,而不是包含在可以执行的Ext中的东西。

现在它是extsj4,我可以在控制器中放置一个商店的监听器,并在控制器中定义一个方法来执行。它可以轻松访问控制器中的任何组件,这将是我如何解决这个问题。但这似乎并不是MVC在触控应用中的运作方式。我看到的例子实际上是完全不同的。 (为什么那顺便说一下?)

在我的图表中加载并填充标签/图例后,在我的商店中获取数据的最佳解决方案是什么?

更新 添加了相关代码的链接。我正在尝试将字符串(标签名称)添加到系列中的标题数组中。请注意图表视图&商店。

图表视图

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

控制器

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

存储

http://jsfiddle.net/LT6eh/

仅供参考,我尝试将监听器添加到控制器内的应用程序,视图等多个事物/对象中,但仍然没有运气。

1 个答案:

答案 0 :(得分:1)

您是否尝试使用Ext.getCmp('myChartId')来访问图表组件?