【问题标题】:Conditionally overriding Ext JS/Sencha Chart framework有条件地覆盖 Ext JS/Sencha 图表框架
【发布时间】:2017-12-11 08:32:50
【问题描述】:

我是 Ext JS 和 Sencha 图表的新手。对于我们的应用程序,我们有多个图表,其中一个图表我需要隐藏 X 轴上的破折号。我们使用的是 Ext JS 版本 5.1,我在其中找不到 dashSize 属性。在框架中进行了一些挖掘之后,我做了一个如下所示的空覆盖

Ext.define('Ext.overrides.chart.axis.sprite.Axis', {
override: 'Ext.chart.axis.sprite.Axis',

renderTicks: function (surface, ctx, layout, clipRect) {        
}});

这对我的要求很有吸引力,但适用于应用程序中的所有图表,我如何进行条件覆盖,所以我需要这样的东西,但不太确定如何将配置传递给框架

Ext.define('Ext.overrides.chart.axis.sprite.Axis', {
override: 'Ext.chart.axis.sprite.Axis',

renderTicks: function (surface, ctx, layout, clipRect) { 
   if(condition)
      //empty
   else
      this.superclass.renderTicks.call();
}});

请帮助。如果我需要提供更多详细信息,请告诉我...

【问题讨论】:

  • 你能把你的东西弄个手,让我试试看吗?
  • 我会试着放一个小提琴..
  • 您需要隐藏线条但仍显示标签还是根本不需要显示 x 轴?
  • 我只需要隐藏刻度..

标签: javascript extjs charts sencha-cmd sencha-charts


【解决方案1】:

如果你根本不需要你的底轴,你可以简单地设置:

axes: [{
    type: 'category',
    position: 'bottom',
    fields: 'name',
    hidden: true // this will hide the axis
}]

如果这不是一个好的选择,并且您的覆盖适合您,您可以简单地向轴添加一个额外的配置以将其用作条件,如下所示:

axes: [{
    type: 'category',
    position: 'bottom',
    fields: 'name',
    hideMajorTicks: true // custom config
}]

Ext.define('Ext.overrides.chart.axis.sprite.Axis', {
    override: 'Ext.chart.axis.sprite.Axis',

    renderTicks: function (surface, ctx, layout, clipRect) {
        var axis = layout.segmenter && layout.segmenter.getAxis();

        if (axis && axis.hideMajorTicks) return;

        this.callParent([surface, ctx, layout, clipRect]);
    }
});

【讨论】:

  • 这正是我要找的,我在错误的地方添加了配置选项:) 非常感谢!! :)
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多