2011-05-27 4 views
1

Я хочу расширить класс диаграммы для использования в представлении как часть рамки extjs4 MVC. Я получаю эту ошибку в поджигатель:расширение класса диаграммы в extjs4 mvc framework приводит к «config undefined»

config is undefined 
[Break On This Error] me.initTheme(config.theme || me.theme); 
Chart....8936564 (line 191) 

Это определение класса:

Ext.define('CDR.chart.Daily', { 
alias: 'widget.dailychart', 
extend: 'Ext.chart.Chart',  
initComponent: function() { 
    Ext.apply(this, { 
     id: 'daily', 
     insetPadding: 30, 

    ... irrelevant code cut ....... 

    });   
    this.callParent(arguments); 
    } 
}); 

Это график добавляется класс вид:

Ext.define('CDR.view.trunk.View', { 
alias: 'widget.trunkview', 
extend: 'Ext.panel.Panel',  
requires: [ 
    'CDR.chart.Daily' 
],   
initComponent: function() { 
    Ext.apply(this, { 
     id  : 'itemCt', 
     border : false, 
     autoScroll: true, 
     layout: { 
      type : 'hbox', 
     },    
     items: [ 
      Ext.create('CDR.chart.Daily'), 
      { 
       id : 'contentCt', 
       width : 500, 
       border: false 
      } 
     ] 
    });     
    this.callParent(arguments); 
    }  
}); 
+0

Можете ли вы высказать свое полное 'CDR.chart.Daily' определение, пожалуйста? – rdougan

ответ

0

Я также имел подобную проблему но не для объекта конфигурации, а для базовой темы, для вашей проблемы сначала вы можете исправить свойство элементов вашей панели, а не

items: [ 
     Ext.create('CDR.chart.Daily'), 

должно быть

элементы: [ {Ext.create ('CDR.chart.Daily'), ....}

Кроме того, если вы используете рамки MVC, то убедитесь, в вашем app.js вы добавили следующие строки в разделе Ext.require:

'Ext.chart.theme.Base', 
'Ext.chart.theme.Theme', 
2

Я думаю, что это ошибка, потому что «тема» должна быть со значением «Base» по умолчанию, но не имеете , Из исходного кода Chart.js:

/** 
* @cfg {String} theme (optional) The name of the theme to be used. A theme defines the colors and 
* other visual displays of tick marks on axis, text, title text, line colors, marker colors and styles, etc. 
* Possible theme values are 'Base', 'Green', 'Sky', 'Red', 'Purple', 'Blue', 'Yellow' and also six category themes 
* 'Category1' to 'Category6'. Default value is 'Base'. 
*/ 

Таким образом, просто добавьте следующий код в свой новый класс:

constructor: function() { 
    this.callParent([{theme: 'Category1'}]); 
}, 

работы Это для меня.