2017-03-09 18 views
0

私はc3-angular-directiveを使ってグラフを描画しています。c3で列の値にカンマを無視する方法

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

私の問題は、私はそれらの値の一部にカンマを持っていること、(val,1,注意してください)です

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

と:C3で、値が次のようになり、文字列として読み込まれc3はこれを3ではなく4つの値として自動的に認識します。このコンマを無視するように値を渡す方法はありますか?

<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> 

問題は時々カンマを持つことができますchartData.namesに

<chart-column column-id="x" column-values="{{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をレンダリングするためにokを指定する方法が必要です...私はそれを見ていますが、c3-angular-directiveコードを更新する必要があるかもしれません。私はちょっとあなたに戻ってきます。 – miir

+0

@ljerkaちょっと、私たちがc3-angular-directiveコードを変更しないと、問題を抱えていると思っているアプローチでさえ変えなければ、それを行う良い方法はないようです。コンマの代わりに他の記号や句読記号を使用できますか? '.'や'; 'や' -'と似ていますか?同じコード 'name.replace( '、'、 'newPunctionation');を使用することができます。 – miir

関連する問題