0

我正在尝试将一些高图表从 php Web 应用程序移植到 Sencha Touche 移动应用程序。

我想在我的视图页面中放置一个空图表,并用一些 jsonp 调用动态地填充它。这是我的视图代码(不是所有 130 行......):

{
xtype : 'panel',
scrollable: true,
html : 'INSERIRE QUI I GRAFICI E LE TABELLE',
items : [
    {
        xtype : 'panel',
        layout : 'fit',
        html : 'AREA PER GRAFICO',
        itemId : 'chartRenderPanel',
        margin: '180px'
    },
    {   //sample code, to be replaced with a consinstent config...
        xtype: 'highchart',
        chartConfig: {
           chart: {
                  type: 'spline'
           },
           title: {
                  text: 'A simple graph'
          },
          xAxis: {
                  plotLines: [{
                  color: '#FF0000',
                  width: 5,
                  value: 'mar'
                  }]
          }
          }
                  },
          {
           xtype : 'panel',
           layout : 'fit',
           html : 'AREA PER TABELLE',
           itemId : 'tableRenderPanel',
           margin: '180px'
        }
        ]
}

Highchart 部分取自这个小提琴http://jsfiddle.net/marcme/DmsGx/

它适用于小提琴,但不适用于我的移动应用程序:使用 chrome 进行调试,我在 Highcharts.js 中卡住了:

update : function(delay) {
        var cdelay = delay || this.updateDelay;
        if(!this.updateTask) {
            this.updateTask = new Ext.util.DelayedTask(this.draw, this);
        }
        this.updateTask.delay(cdelay);
    },

在控制台中显示“Uncaught TypeError: undefined is not a function”消息。

请帮忙!:)

洛伦佐

4

1 回答 1

0

在 sencha touch 中调用 DelayedTask 的方式必须与在 Extjs 中不同。改变这个

this.updateTask = new Ext.util.DelayedTask(this.draw, this);

对此

if (Ext.util.DelayedTask)
    this.updateTask = new Ext.util.DelayedTask(this.draw, this);
else
    this.updateTask = Ext.create('Ext.util.DelayedTask', this.draw, this);
于 2013-06-20T22:36:55.327 回答