我想使用折线图显示浏览器随时间的使用情况,但是,在定义模型时,我不想将浏览器的名称硬编码为字段。
所以,我不想做这样的事情:
Ext.define('BrowserCount', {
extend: 'Ext.data.Model',
fields: [{
name: 'Year',
type: "int"
}, {
name: "Firefox",
type: "int"
}, {
name: "MSIE",
type: "int"
}, {
name: "Chrome",
type: "int"
}]
});
var browserCountStore = Ext.create('Ext.data.Store', {
model: 'AggregatedBrowserUsage',
data: [{
Year: '2011',
Firefox: 4952,
MSIE: 4613,
Chrome: 1401
}, {
Year: '2012',
Firefox: 952,
MSIE: 613,
Chrome: 401
}]
});
相反,我想如下定义我的模型:
Ext.define('Browser', {
extend: 'Ext.data.Model',
fields: [{
name: 'Browser',
type: 'string'
}, {
name: 'Alias',
type: 'string'
}],
hasMany: {
model: 'AggregatedTotal',
name: 'aggregatedtotal',
associationkey: 'AggregatedTotals'
}
});
Ext.define('AggregatedTotal', {
extend: 'Ext.data.Model',
fields: [{
name: 'Year',
type: 'int'
}, {
name: 'Count',
type: 'int'
}],
belongsTo: 'Browser'
});
var browsers = Ext.create('Ext.data.Store', {
model: 'Browser',
data: [{
Browser: 'Firefox',
Alias: 'Firefox',
AggregatedTotals: [{
Year: 2011,
Count: 4952
}, {
Year: 2012,
Count: 999
}]
}, {
Browser: 'Chrome',
Alias: 'Chrome',
AggregatedTotals: [{
Year: 2011,
Count: 3552
}, {
Year: 2012,
Count: 6000
}]
}, {
Browser: 'MSIE',
Alias: 'Internet Explorer',
AggregatedTotals: [{
Year: 2011,
Count: 100
}, {
Year: 2012,
Count: 50
}]
}]
});
如果以后一种方式定义,我如何设置图表的商店和字段配置选项,使其显示与商店以与第一个示例相同的方式定义的相同信息?此外,当访问/悬停折线图中的项目时,我想访问 Browser 模型的字段,例如 Browser 和 Alias (参见示例)。
这是示例的链接。