构建我的应用程序后渲染图表饼图时出现初始化错误
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'
]
构建我的应用程序后,出现异常 "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'
]