2017-03-09 51 views
0

我正在使用c3-angular-directive繪製圖表。在C3,值被解讀爲一個字符串,它看起來像這樣:如何使c3忽略列值中的逗號

['val1', 'val2','val3'] 

我的問題是,我有一些這些值的逗號(注意val,1,),

['val,1', 'val2','val3'] 

和c3會自動將它理解爲4個值而不是3個。有沒有辦法傳遞這些值來忽略這個逗號?

這裏是我的代碼:

<c3chart bindto-id="chart" show-labels="true" ng-if="chartData.show"> 
    <chart-size chart-height="{{chartData.height}}"/> 
    <chart-column column-id="x" column-values="{{chartData.names}}" /> 
    <chart-column column-id="data1" 
        column-name="D" 
        column-values="{{chartData.valuesD}}" 
        column-type="bar" /> 
    <chart-column column-id="data2" 
        column-name="Z" 
        column-values="{{chartData.valuesZ}}" 
        column-type="bar" /> 
    <chart-bar ratio="0.8" /> 
    <chart-axes values-x="x" y="data1,data2" /> 
    <chart-axis axis-rotate="true"> 
     <chart-axis-x axis-type="category"> 
      <chart-axis-x-tick tick-centered="true" 
           tick-multiline="false" /> 
      </chart-axis-x> 
     <chart-axis-y axis-id="y" 
         axis-position="outer-right" 
         axis-label="Number od D & Z" /> 
     </chart-axis> 
</c3chart> 

的問題是在

<chart-column column-id="x" column-values="{{chartData.names}}" /> 

在chartData.names有時可有逗號。

回答

0

您將不得不清理逗號數據 - 嘗試使用html實體編號&#44;代替逗號。

var namesRaw = ['val,1', 'val2','val3']; 
var namesClean = namesRaw.map(function(name) { 
    if (typeof name !== 'string') { 
     return name; 
    } else { 
     return name.replace(',', '&#44;'); 
    } 
}); 

我想,因爲角使用DOM的方式,您的列值的javascript陣列將被展平爲當它終於變成DOM屬性一個字符串。

chartData.names = ['val,1', 'val2','val3'] 
<chart-column column-id="x" column-values="{{chartData.names}}" /> 

我認爲在某些時候DOM列值變爲column-values="val,1,val2,val3"

然後是code in c3-angular-directive只是做"val,1,val2,val3".split(',')

+0

試圖與, - 如預期,它並不值分開了,但寫出,,而不是逗號。 – ljerka

+0

好的,我們需要一種方法來告訴角度,它可以呈現html ...我正在看它,但它可能需要更新c3-angular-directive代碼。我會稍微回覆你。 – miir

+0

@ljerka嘿,所以它看起來沒有一個好方法去做,除非我們改變c3-angular-directive代碼,甚至那些我想到的方法都有問題。你可以使用其他符號或標點代替逗號嗎?像'.'還是''''''或'-'?你可以使用相同的代碼'name.replace(',','newPunctionation');' – miir