首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图表JS:在工具提示模板中使用函数

图表JS:在工具提示模板中使用函数
EN

Stack Overflow用户
提问于 2015-10-01 22:32:29
回答 1查看 810关注 0票数 0

我有一系列代表货币的数据,我需要工具提示来显示数据序列和格式化数据。我有一个工作函数,可以将"123456.78“转换为"123,456.78”,但我不能在工具提示中应用这一点。我的代码如下:

代码语言:javascript
复制
function formatMoney(n, c, d, t){
  var c = isNaN(c = Math.abs(c)) ? 2 : c,
      d = d == undefined ? "." : d,
      t = t == undefined ? "," : t,
      s = n < 0 ? "-" : "",
      i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
      j = (j = i.length) > 3 ? j % 3 : 0;
     return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
   };
  var lineChartData = {
        labels : ['January', 'Ferbruary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    datasets : [
      {
        label: "Value",
        fillColor : "rgba(32,78,158,0.2)",
        strokeColor : "rgba(32,78,158,1)",
        pointColor : "rgba(32,78,158,1)",
        pointStrokeColor : "#fff",
        pointHighlightFill : "#fff",
        pointHighlightStroke : "rgba(32,78,158,1)",
        data : ['20000','22000','35000','17000','18000','47500','20000','22000','35000','17000','18000','47500']
      },{
        label: "Budget",
        fillColor: "rgba(47,116,234,0.3)",
        strokeColor: "rgba(47,116,234,1)",
        pointColor: "rgba(47,116,234,1)",
        pointStrokeColor: "#fff",
        pointHighlightFill: "#fff",
        pointHighlightStroke: "rgba(47,116,234,1)",
        data : ['10000','20000','30000','7000','17000','40500','19000','20000','33000','12000','17500','40500']
    },
    ]
  }
  var ctx = document.getElementById("money-graph").getContext("2d");
  window.myLine = new Chart(ctx).Line(lineChartData, {
    responsive: true,
    maintainAspectRatio: true,
    multiTooltipTemplate: "<%= datasetLabel %> £<%= formatMoney(value,2) %>"
  });

我在控制台中遇到的错误是ReferenceError: Can't find variable: formatMoney

我还尝试将函数定义为var formatMoney = function(n, c, d, t)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 18:25:09

我把这作为一个答案,这样就更容易找到将来的参考了。问题是模板引擎无法处理函数,或者类似的东西。但是,使用另一种模板方式似乎奏效了:

代码语言:javascript
复制
multiTooltipTemplate: function(chartData){
  return chartData.label+" : " + formatMoney(chartData.value, 2);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32897856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档