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'
        }
        ]
}

ハイチャートの部分は、このフィドルhttp://jsfiddle.net/marcme/DmsGx/から取得されます

それはフィドルでは機能しますが、私のモバイルアプリでは機能しません:クロムでデバッグすると、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 では、Extjs とは異なる方法で DelayedTask を呼び出す必要があります。これを変える

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 に答える