2017-09-11 8 views
3

저는 Chart.js를 사용하고 있습니다. My Sample Graph이 차트에 쉼표를 추가하는 방법 js

1000을 나타 내기 위해이 값에 쉼표를 첨부해야합니다. 예는 : 1000

animation: { 
    duration: 500, 
    easing: "easeOutQuart", 
    onComplete: function (label) { 
     var ctx = this.chart.ctx; 
     ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontFamily, 'normal', Chart.defaults.global.defaultFontFamily); 
     ctx.textAlign = 'center'; 
     ctx.textBaseline = 'bottom'; 
     this.data.datasets.filter(dataset => !dataset._meta[Object.keys(dataset._meta)[0]].hidden).forEach(function (dataset) { 
      for (var i = 0; i < dataset.data.length; i++) { 
       var model = dataset._meta[Object.keys(dataset._meta)[0]].data[i]._model,     
        scale_max = dataset._meta[Object.keys(dataset._meta)[0]].data[i]._yScale.maxHeight; 
            ctx.fillStyle = '#000'; 
       var y_pos = model.y - 5; 
       // Make sure data value does not get overflown and hidden 
       // when the bar's value is too close to max value of scale 
       // Note: The y value is reverse, it counts from top down 
       if ((scale_max - model.y)/scale_max >= 0.70) 
        y_pos = model.y + 20; 
       ctx.fillText(dataset.data[i], model.x, y_pos); 

      } 
     }); 

    } 
} 

이 그 값을 표시하는 코드이고 나는이 코드 덩어리 안에해야하는 쉼표를 첨부 할 코드를 믿습니다.

난 그냥이 포럼 에서이 코드를 이동하십시오. 그래서 나는 정말로 어떤 일이 일어나고 있는지 확신하지 못한다. How to display Values above bars

답변

5

이 기능을 사용하십시오.

function addCommas(nStr) 
{ 
    nStr += ''; 
    x = nStr.split('.'); 
    x1 = x[0]; 
    x2 = x.length > 1 ? '.' + x[1] : ''; 
    var rgx = /(\d+)(\d{3})/; 
    while (rgx.test(x1)) { 
     x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
    } 
    return x1 + x2; 
} 

아래의 SO 대답에 나와 있습니다.

SO Answer

데모 :

이 유형의 문제에 대한 toLocaleString()을 사용할 수 있습니다

JSFiddle Demo