构建我的应用程序后渲染图表饼图时出现初始化错误

Initialization error during rendering chart pie after building my application

构建我的应用程序后,出现异常 "TypeError : j.initialize is not a function"。此错误仅在我构建应用程序时发生,而不是在调试模式下发生。

ext-all.js 中的这一行:

j.initialize();

我资助了 extjs 代码中出现这种情况的地方,但我不明白为什么。

使用的 extjs 版本:4.2.2 - build 1444 使用的 CMD 版本:4.0.2.67

我的图表饼图代码:

                           {
                                xtype:'chart',
                                renderTo: Ext.getBody(),
                                legend:false,
                                width:120,
                                height:120,
                                animate: true,
                                store: 'PagesCountDetailsPieStore',
                                itemId:'pieChartProjectDetailsDashboard',
                                shadow:false,
                                series: [{
                                    type: 'pie',
                                    donut:60,
                                    angleField: 'data'
                                }]
                            }

使用的商店:

Ext.define('Saas.store.PagesCountDetailsPieStore',{
extend:'Ext.data.JsonStore',
storeId:'pageCountDetailsPieStoreItemId',
autoLoad:true,
fields:['name','data'],
data: [
    { 'name': 'metric one',   'data': 10 },
    { 'name': 'metric two',   'data':  7 },
    { 'name': 'metric three', 'data':  5 },
    { 'name': 'metric four',  'data':  2 },
    { 'name': 'metric five',  'data': 27 }]

});

而错误发生在文件ext-all.js :

initializeSeries: function(j, m, a) {
var k = this,
    g = k.themeAttrs,
    d, h, o, q, p, n = [],
    e = (j instanceof Ext.chart.series.Series).i = 0,
    c, b;
if (!j.initialized) {
    b = {
        chart: k,
        seriesId: j.seriesId
    };
    if (g) {
        o = g.seriesThemes;
        p = g.markerThemes;
        d = Ext.apply({}, g.series);
        h = Ext.apply({}, g.marker);
        b.seriesStyle = Ext.apply(d, o[a % o.length]);
        b.seriesLabelStyle = Ext.apply({}, g.seriesLabel);
        b.markerStyle = Ext.apply(h, p[a % p.length]);
        if (g.colors) {
            b.colorArrayStyle = g.colors
        } else {
            n = [];
            for (c = o.length; i < c; i++) {
                q = o[i];
                if (q.fill || q.stroke) {
                    n.push(q.fill || q.stroke)
                }
            }
            if (n.length) {
                b.colorArrayStyle = n
            }
        }
        b.seriesIdx = m;
        b.themeIdx = a
    }
    if (e) {
        Ext.applyIf(j, b)
    } else {
        Ext.applyIf(b, j);
        j = k.series.replace(Ext.createByAlias("series." + j.type.toLowerCase(), b))
    }
}
j.initialize();
j.initialized = true;
return j

},

好像是编译器的问题。

您只需在视图顶部手动添加一个要求条件,其中包含图表所需的所有条件,它就可以正常工作。

    requires:[
       'Ext.chart.series.Pie',
       'Ext.chart.series.Series',
       'Ext.chart.Chart',
       'Ext.data.Store'
    ]