2015-06-03 94 views
1

我有一個頁面上有幾個圖表,使用Chartist。我想要全球選項和個人選項爲每個圖表。在Chartist中,如何向特定圖表添加特定選項?

var barChartOptions = { 
    reverseData: true, 
    horizontalBars: true, 
} 

new Chartist.Bar('#chart1', { 
    labels: [1, 2, 3, 4], 
    series: [[100, 120, 180, 200]] 
},barChartOptions 
    // HOW DO I ADD SPECIFIC OPTIONS?! 
       ); 

new Chartist.Bar('#chart2', { 
    labels: [1, 2, 3, 4], 
    series: [[120, 90, 150, 100]] 
},barChartOptions); 

new Chartist.Bar('#chart3', { 
    labels: [1, 2, 3, 4], 
    series: [[180, 190, 90, 110]] 
},barChartOptions); 

這是jsFiddle展示我的問題。

注:我是一個JavaScript的n00b,所以我可能會錯過這裏非常基本的東西。

+0

JSFiddle不鏈接到JSFiddle,而是鏈接到Chartist。如果您修復了鏈接,將很樂意提供幫助。 – arikfr

+0

@arikfr - 哎呀!它現在已經修復,如果有幫助的話。 –

回答

1

假設你使用jQuery或Underscore.js,您可以使用extendjQueryUnderscore)函數合併兩個對象,所以你可以這樣做:

var barChartOptions = { 
    reverseData: true, 
    horizontalBars: true, 
} 

new Chartist.Bar('#chart1', { 
    labels: [1, 2, 3, 4], 
    series: [[100, 120, 180, 200]] 
},_.extend({/*specific options*/}, barChartOptions)); 

這種方式將被傳遞給對象Chartist.Bar是與全球barChartOptions合併的特定選項。

+0

不錯!如果我想覆蓋一些全球選項呢?這也可以用這種方法嗎? –

+0

然後改變它:'_.extend({},barChartOptions,{/ *特定選項* /}'這將創建一個新對象,並將其他兩個合併到最上面,用特定的覆蓋全局選項。第一個'{}'很重要,否則每次都會覆蓋'barChartOptions'對象。 – arikfr

相關問題