2017-07-07 44 views
1

我是Ext JS和Sencha圖表的新手。對於我們的應用程序,我們有多個圖表,其中一個圖表需要隱藏X軸上的破折號。我們使用的是Ext JS版本5.1,我找不到dashSize屬性。在框架中的一些挖後,我不喜歡下面有條件重寫Ext JS/Sencha Chart框架

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(); 
}}); 

請幫助。讓我知道如果我需要提供更多的細節......

+1

你可以與你有什麼小提琴,所以我可以試着? – Alexander

+0

我會嘗試放入小提琴.. – Niranjan

+0

您是否需要隱藏線條,但仍然顯示標籤或根本不需要顯示x軸? –

回答

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]); 
    } 
}); 
+0

這正是我正在尋找的,我在錯誤的地方添加配置選項:)非常感謝! :) – Niranjan