有条件地覆盖 Ext JS/Sencha 图表框架
Conditionally overriding Ext JS/Sencha Chart framework
我是 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();
}});
请帮忙。让我知道是否需要提供更多详细信息...
如果你根本不需要你的底轴,你可以简单地设置:
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]);
}
});
我是 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();
}});
请帮忙。让我知道是否需要提供更多详细信息...
如果你根本不需要你的底轴,你可以简单地设置:
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]);
}
});