2013-03-15 29 views
0

我试图使用Highcharts插件,我已经开始在他的文档中的简单示例 我已经正确设置环境(我敢肯定)。 这是我所声明的窗口:Chart.ux.Highcharts如何让简单的商店工作

//other part of app.js (working) 
launch:function():{ 
var sto = Ext.create('AM.store.mysto'); 
var win = new Ext.create('Ext.window.Window', { 
    layout: 'fit', 
    items: [{ 
     xtype: 'highchart', 
     series:[{ 
      dashStyle: 'DashDot', 
      dataIndex: 'value' 
     }], 
     xField: 'month', 
     store: sto, 
     chartConfig: { 
      chart: { 
      type: 'spline' 
      }, 
      title: { 
      text: 'A simple graph' 
      } 
     } 
    }] 
}).show(); 
//other part of app.js (working) 
} 
//........more other part of app.js (working) 

,我已经宣布店如下:

Ext.define('AM.store.mysto', { 
    extend : 'Ext.data.Store', 
    model : 'AM.model.mysto', 
    data : [{ 
    month : 'x', 
    value:1 
    }, { 
    month : 'y', 
    value:12, 

    value:2 
    }, { 
    month : 'z', 
    value:3 
    }] 
}); 

最后,这是我的模型:

Ext.define('AM.model.mysto', { 
    extend : 'Ext.data.Model', 
    fields : [{ 
    name : 'month' 
    }, { 
    name : 'value' 
    }] 
}); 

如果我执行我的应用程序,这将是我的窗口:一个没有图表的空窗口。

the window

我与DOC例子中所做的唯一的区别是商店。有人能告诉我什么是错的吗? 谢谢!

回答

0

Sencha“mitchellsimoens”的大师说: “你有布局:'适合'在窗口,将大小的子项目的窗口的大小,所以你需要给窗口的大小。

这是真的。我已经添加的大小和它的作品罚款:

var win = new Ext.create('Ext.window.Window', { 
    layout: 'fit', 

//HERE!!!! 
     width: 200, 
     height: 200, 

    items: [{ 
0

问题不是一个窗口大小实际上,
问题是 - 空窗里面和
没有图表的方式有同样的问题

在原来的例子店里没有装,甚至是自动加载在商店是不是你

, autoLoad: true 

原因的情况下,你应该创建窗口后,才加载存储与数据或窗口创建
这种方式后重装一个商店,我会做这样的事情

var chartStore = Ext.create('chartStore'); 
chartStore.load({ 

    callback: function (data, operation, success) { 

     // here the store is loaded with data already 
     var winChart = new Ext.create('Ext.window.Window', { 
      width: 400 
      , height: 400 
      , layout: 'fit' 
      items: [{ 
       xtype: 'highchart' 
       , series: [{ 
    } 

而且这可能是一个想法,以及 Chart.ux.Highcharts> >> initAnimAfterLoad

由于Highcharts的初始动画和更新动画是不一样的,如果你想确保有初始动画,那么你应该按照特定的顺序创建存储和扩展。首先,将Ext.data.Store.autoLoad选项设置为false,使用商店创建Highcharts组件,然后调用Ext.data.Store.load方法。 initAnimAfterLoad延迟内部创建图表直到商店被加载。禁用它,扩展程序将立即创建图表,并且只会在加载后看到更新动画。

也是这家店PARAM给控制台更多信息

, debug: true 


解决与同事的建议
本应在商店中添加和工程就像一个魅力

, autoLoad: true 

谢谢