gpt4 book ai didi

javascript - Extjs图表选错Store了?

转载 作者:行者123 更新时间:2023-12-03 10:06:34 25 4
gpt4 key购买 nike

我试图并排绘制两个图表,它们将通过传递不同的参数来使用同一商店,但两个图表都使用第二个商店的值。我可以在 Chrome 控制台中看到响应,两个请求和不同的响应是正确的;下面是我的代码。

Ext.define('testUtility.view.BarChart', {
extend: 'Ext.chart.Chart',
alias: 'widget.barChart',
renderTo: Ext.getBody(),
store: Ext.create('Ext.data.Store', {
fields: ['name', 'data'],
autoLoad: false,
proxy: {
type: 'ajax',
url: 'data/store1',
reader: {
type: 'json',
root: 'Data'
},
filterParam: undefined,
groupParam: undefined,
pageParam: undefined,
startParam: undefined,
sortParam: undefined,
limitParam: undefined
}
}),
axes: [{
type: 'Numeric',
position: 'left',
fields: ['data'],
label: {
renderer: Ext.util.Format.numberRenderer('0,0')
},
title: 'Values',
grid: true,
minimum: 0
}, {
type: 'Category',
position: 'bottom',
fields: ['name'],
title: 'Master'
}],
series: [{
type: 'column',
axis: 'left',
highlight: true,
tips: {
trackMouse: true,
width: 100,
height: 28,
renderer: function(storeItem, item) {
this.setTitle(storeItem.get('name') + ': ' + storeItem.get('data') + ' $');
}
},
label: {
display: 'insideEnd',
'text-anchor': 'middle',
field: 'data',
renderer: Ext.util.Format.numberRenderer('0'),
orientation: 'vertical',
color: '#333'
},
xField: 'name',
yField: 'data'
}]
});

app.js

Ext.application({
requires: [
'Ext.container.Viewport'
],

name: 'BAR Chart ',
launch: function() {

var chart1 = Ext.create('testUtility.view.BarChart', {
id: 'chart1',
height: 300,
width: '50%'
});

var store1 = chart1.getStore();
store1.proxy.extraParams = {
id: chart1.id
};
store1.load();
var chart2 = Ext.create('testUtility.view.BarChart', {
id: 'chart2',
height: 300,
width: '50%'
});

var store2 = chart2.getStore();
store2.proxy.extraParams = {
id: chart2.id
};
store2.load();
}
});

两个图表都显示来自商店的数据(以稍后加载者为准)。

最佳答案

当您在定义中调用它们时,您的两家商店都是同一家。您应该在创建类的实例时调用存储,如下所示:

var chart1 = Ext.create( 'testUtility.view.BarChart', {
id: 'chart1',
height: 300,
width: '50%',
store: store1
} );

定义自己的商店是一个很好的做法:

Ext.define( 'testUtility.store.BarChart', {
extend: 'Ext.data.Store',
...
} );

然后在代码的第一部分之前使用它:

var store1 = Ext.create( 'testUtility.store.BarChart', { options } );

您的选项,包括额外参数,对于 2 家商店来说是不同的。

关于javascript - Extjs图表选错Store了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30327138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com