【问题标题】:ExtJS 5 chart series rendererExtJS 5 图表系列渲染器
【发布时间】:2015-12-11 15:52:17
【问题描述】:

我有一个网格和一个折线图。他们都使用一个商店。我使用网格列 renderer() 函数,如下所示:

renderer: function(value){
   return value;
} 

根据某些条件(增量、比率等)更改数据。我也想在我的图表中反映这些行为。我想我应该设置系列 renderer() 但它没有作为参数的值:

renderer: function (sprite, config, rendererData, index) {
 if (config.type === 'marker') {
     return { strokeStyle: (index % 2 === 0 ? 'red' : 'black') };
 }
} 

是否可以在网格中实现渲染以更改我的绘图但不更改存储中的实际数据?

【问题讨论】:

    标签: javascript extjs charts extjs5


    【解决方案1】:

    如果我没记错的话,您正在搜索的value 可以在rendererData 参数中找到,该参数是一个包含属性angleField 的对象。我不知道在那儿更改它是否会影响图表,但我猜是这样(就像网格渲染器中的metaData 参数会影响网格的渲染一样)。

    但是:

    渲染器仅更改某些数据的显示。基础值保持不变,这可能会影响各种数据操作,如分组、排序等。

    如果您真的想根据条件更改值,最好扩展模型,添加不持久的calculated 列,并设置gridcolumns 的dataIndexes相应地(图表也是如此)。

    我不确定渲染器是否会影响饼图中切片的大小;但我敢肯定,如果您(例如)按切片大小对存储进行排序,则更改渲染器中的值不会影响切片在图表中的排序方式。

    也就是说,这取决于您;我的评论只是为了完整性。

    【讨论】:

    • 我读到'angleField' 是极坐标图的配置。但是尽管如此,我还是以这种方式获得了价值'rendererData.store.data.items [index].data.value'。但是,我仍然不知道如何返回此值以在图表中提交视觉更改。 @Alexander 另外,我不能在模型中使用“转换”(或计算)函数,因为我需要在加载数据进行存储之前访问我需要的所有数据。 (例如,将值与前一个对象的值或集合中的第一个对象进行比较)
    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 2011-07-31
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    相关资源
    最近更新 更多