2017-03-09 92 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