Sencha触摸2.3.1 Cmd: 4.0.X.X
我的Sencha Touch Charts应用程序试图绘制图表时会抛出此错误:
Uncaught :对象对象没有方法'getShowInLegend‘AbstractChart.js?_dc=1395914109534:649 Ext.define.refreshLegendStore AbstractChart.js?_dc=1395914109534:649 Ext.define.updateSeries AbstractChart.js?_dc=1395914109534:877 setter sencha-touch all-调试器all:5491 Base.implement.initConfig感应器-全触式调试all:4920 Ext.define.constructor感应器-全触式调试all:22651 Base.implement.callParent感应器-全触式调试all:4656 Ext.define.constructor感应器-全触式调试all:32375 Base.implement.callSuper感应器-全触式调试all:4735 Ext.define.constructor Component.js?_dc=1395914109519:100 Base.implement.callSuper感应器-全触式调试all:4735 Ext.define.constructor AbstractChart.js?_dc=1395914109534:626 类感应器-全触式调试all:5208 (匿名功能)VM14212 14212:3 Ext.ClassManager.instantiate感应器-全触式调试all:6936 Ext.ClassManager.instantiateByAlias感应器-全触式调试all:6848 Ext.apply.factory感应器-全触式调试all:9980 Ext.define.factoryItem感应器-全触式调试all:32637 Ext.define.add感应器-全触式调试all:32714 Ext.define.applyItems感应器-全触式调试all:32538 setter sencha-touch all-调试器all:5482 (匿名函数)sencha-触摸-所有-调试器:5516 Ext.define.applyActiveItem感应器-全触式调试all:33208 (匿名函数)sencha-touch-all-调试器all:16565 Base.implement.initConfig感应器-全触式调试all:4920 Ext.define.constructor感应器-全触式调试all:22651 Base.implement.callParent感应器-全触式调试all:4656 Ext.define.constructor感应器-全触式调试all:32375 类感应器-全触式调试all:5208 (匿名功能)VM14212 14212:3 Ext.ClassManager.instantiate感应器-全触式调试all:6936 Ext.ClassManager.instantiateByAlias感应器-全触式调试all:6848 Ext.apply.factory感应器-全触式调试all:9980 Ext.define.factoryItemWithDefaults感应器-全触式调试all:32683 Ext.define.add感应器-全触式调试all:32707 Ext.define.applyItems感应器-全触式调试all:32538 setter sencha-touch all-调试器all:5482 (匿名函数)sencha-触摸-所有-调试器:5516 Ext.define.applyActiveItem感应器-全触式调试all:33208 Base.implement.callParent感应器-全触式调试all:4656 Ext.define.applyActiveItem感应器-全触式调试all:46269 (匿名函数)sencha-touch-all-调试器all:16565 Base.implement.initConfig感应器-全触式调试all:4920 Ext.define.constructor感应器-全触式调试all:22651 Base.implement.callParent感应器-全触式调试all:4656 Ext.define.constructor感应器-全触式调试all:32375 类感应器-全触式调试all:5208 (匿名功能)VM14212 14212:3 Ext.ClassManager.instantiate感应器-全触式调试all:6936 Ext.ClassManager.instantiateByAlias感应器-全触式调试all:6848 Ext.apply.factory感应器-全触式调试all:9980 Ext.define.factoryItem感应器-全触式调试all:32637 Ext.define.add感应器-全触式调试all:32714 doCharts doCharts.js:394 Ext.Ajax.request.success standardFunctions.js:166 Ext.apply.callback感应器-全触式调试all:10268 Ext.define.onComplete感应器-全触式调试all:35765 Ext.define.onStateChange感应器-全触式调试all:35709 (匿名函数)
这些图表呈现到此视图中:
Ext.define('dashboards.view.Main', {
extend: 'Ext.Panel',
requires: [
'Ext.chart.*',
'Ext.draw.sprite.Sector',
'Ext.chart.Chart',
'Ext.chart.series.Column',
'Ext.chart.AbstractChart',
'Ext.chart.SpaceFillingChart',
'Ext.dataview.component.Container',
'Ext.chart.series.Series',
'Ext.chart.series.Gauge',
'Ext.carousel.Indicator',
'Ext.carousel.Infinite',
'Ext.carousel.Item',
'Ext.carousel.Carousel',
'Ext.fx.easing.EaseOut',
'Ext.util.TranslatableGroup',
'Ext.chart.series.Cartesian',
'Ext.chart.series.Area',
'Ext.chart.Label',
'Ext.chart.Highlight',
'Ext.chart.Callout',
'Ext.chart.Transformable',
'Ext.chart.series.ItemEvents',
'Ext.chart.theme.Style',
'Ext.draw.Color',
'Ext.chart.series.Bar',
'Ext.chart.series.Column',
'Ext.chart.axis.Gauge',
'Ext.chart.theme.Base',
'Ext.chart.theme.Base',
'Ext.chart.theme.TitleStyle',
'Ext.chart.theme.GridStyle',
'Ext.chart.Toolbar',
'Ext.chart.legend.View',
'Ext.chart.Legend',
'Ext.chart.axis.Numeric',
'Ext.chart.axis.Category',
'Ext.draw.Surface',
'Ext.draw.Draw',
'Ext.draw.Matrix',
'Ext.draw.engine.Canvas',
'Ext.draw.CompositeSprite',
'Ext.fx.Frame',
'Ext.draw.Sprite',
'Ext.fx.Sprite',
'Ext.draw.sprite.Sector',
'Ext.draw.sprite.Rect',
'Ext.chart.interactions.Abstract',
'Ext.chart.axis.Axis',
'Ext.chart.axis.Abstract',
'Ext.util.SizeMonitor',
'Ext.chart.grid.HorizontalGrid','Ext.chart.grid.VerticalGrid','Ext.draw.fx.TimingFunctions','Ext.Container','Ext.TitleBar','Ext.data.Store','Ext.data.StoreManager'
],
alias: 'widget.mainview',
id: 'mainpage',
getSlideLeftTransition: function () {
return { type: 'slide', direction: 'left' };
},
getSlideRightTransition: function () {
return { type: 'slide', direction: 'right' };
},
config: {
layout: {
type: 'fit'
},
items: [
{
xtype : 'container',
flex: 1,
id: 'introtext',
html: '<p>Please select from your dashboards above</p>'
},
{
xtype : 'selectfield',
store : companiesStore2,
name : 'companies',
queryMode: 'local',
id : 'companiesSelect',
itemId: 'companySelect',
valueField : 'companyname',
displayField : 'companyname',
style: 'overflow:hidden',
listeners: {
change: function(field,value) {
getStats(value)
}
}
},
{
xtype: 'toolbar',
docked: 'bottom',
id: 'bumtoolbar',
items: []
},
{
layout: {
pack: 'end'
},
xtype: 'titlebar',
id: 'titlebartop',
title: 'axisfirst Dashboards',
docked: 'top',
items: [
{
xtype: 'button',
text: 'Log Off',
itemId: 'logOffButton2',
id: 'logOffButton2',
align: 'right',
cls: 'logoffBtn',
scope: this,
listeners: {
tap: function() {
Ext.Msg.confirm("Log out", "Are you sure you want to logout?", function(btn) {
if (btn === 'yes') {
logout();
//Ext.Viewport.setActiveItem({ xtype: loginview });
} else {
return false;
}
}, this);
}
}
}
]
}]
}
});图表是使用一个单独的.js文件添加的。代码如下所示:
var chartgx = {
cls: 'thegauge',
itemId: 'gauge'+tt2,
xtype: 'chart',
shadow: true,
store: gaugeStore,
width : 'auto',
animate: true,
insetPadding: 50,
axes: [{
type: 'gauge',
position: 'gauge',
minimum: 0,
maximum: gaugemax,
steps: 10,
margin: 10,
direction: 'right'
}],
series: [{
showInLegend: false,
type: 'gauge',
position: 'gauge',
minimum: 0,
maximum: gaugemax,
steps: 10,
margin: 10,
angleField: 'CurrentValue',
donut: 30,
colorSet:[gaugeColor,'#e1e1e1']
}]
};
var gaugeText = '<p class="gaugetitle">' + gaugeTitle + ': ' + currentValue + '</p>';
var chartgx2 = Ext.Container({
xtype : 'container',
flex: 1,
layout: 'fit',
cls: 'gaugeContainer',
needle: true,
items: chartgx,
html: gaugeText
});
if (gaugeTitle !== '') {
allcharts.push(chartgx2);
}我看过AbstractChart.js,当然,它正在调用这个函数。我搜索了我的整个目录(inc、/app和/src),但是找不到函数。
我已经更新了“Ext.chart.AbstractChart”所需和扩展的所有文件,但仍然会得到错误。
请有人告诉我函数属于哪个类,这样我就可以从docs.sencha.com更新,或者告诉我如何纠正这个错误。
发布于 2014-03-27 18:12:07
关于您的问题,您的“系列”是在AbstractChart上定义的。您的图表扩展了AbstractChart,因此您不需要添加它的要求(AbstractChart)。该方法getSeries是由感测触摸核产生的.扩展Ext.base的对象的所有字段都有getMyField和setMyField。
错误发生在这函数上。当它尝试getShowInLegend的时候。但是系列赛的每一项都有getShowInLegend方法,您可以确认在showInLegend: true,行上查找这里。
正如我在第一行中所说的,所有扩展Ext.base的对象都有getMyField方法,图文集系列系列扩展到Ext.base。
有了这些信息,问题可能是在建立图表时产生了一些误解。但是我们没有关于您的图表是如何创建的信息。你用过Ext.create吗?
https://stackoverflow.com/questions/22684383
复制相似问题