2017-08-03 77 views
0

我使用的是最新版本的chart.js 2.6.0。Chart.js v2覆蓋繪圖函數

我想覆蓋條形圖以使角落變圓。我發現這個腳本:https://github.com/jedtrow/Chart.js-Rounded-Bar-Charts/blob/master/Chart.extentions.js,它的效果很好。

我創建了一個新圖形選項:「is_curved」,因爲我在同一頁面上有多個圖形,並且我只想爲它們中的一些製作圓角。

在我的情況的問題是,如果我用下面的代碼,所有的圖表都圓角:

Chart.elements.Rectangle.prototype.draw = function() { 
    //code to make corners rounded 
} 

功能:

Chart.elements.Rectangle.prototype .draw

在所有圖表上調用。我希望只有在選項「is_curved」設置爲true時才能執行它。所以,我想:

Chart.elements.Rectangle.prototype.draw = function() { 
    if(!this._chart.options.is_curved) { 
     return; 
    } 
    //code to make corners rounded 
} 

但這仍然是錯誤的,因爲不具備「is_curved」選項設置爲true的圖表是空的,我想這個事實,我稱之爲.draw方法刪除所有現有的功能,即使我不爲他們添加新的功能。

任何想法如何設置繪圖函數只爲「is_curved」選項設置爲true的圖表起作用?謝謝。

回答

1

改變這行代碼:

var cornerRadius = 5; 

這樣:

var cornerRadius = this._chart.options.is_curved ? 5 : 0; 

這將設置酒吧拐角半徑5,如果is_curved正確ty設置爲true對於任何特定的圖表,否則將設置爲0

請參閱 - working example on JSFiddle

+1

這正是我昨天修正它的原因。謝謝。 – Pascut