расширение класса диаграммы в среде extjs4 mvc приводит к "config is undefined" - PullRequest
1 голос
/ 27 мая 2011

Я хочу расширить класс диаграммы для использования в представлении как часть среды extjs4 MVC.Я получаю эту ошибку в firebug:

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);
  }    
});

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Я думаю, что это ошибка, потому что тема должна иметь значение «Базовое» по умолчанию, но не имеет.Из исходного кода 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'}]);
},

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

0 голосов
/ 24 июня 2011

У меня также была похожая проблема, но не для объекта конфигурации, а для Базовой темы. Для вашей проблемы сначала вы можете исправить свойство items вашей панели вместо

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

, оно должно быть

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

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

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