ChartJS的EJS标签?

And*_*rdi 0 ejs mongodb node.js express chart.js

可以使用EJS标签将数据添加到图形吗?这是我当前图形的数据:

var canvas = document.getElementById('myChart');
var data = {
    labels: ["One", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            backgroundColor: "rgba(255,99,132,0.2)",
            borderColor: "rgba(255,99,132,1)",
            borderWidth: 2,
            hoverBackgroundColor: "rgba(255,99,132,0.4)",
            hoverBorderColor: "rgba(255,99,132,1)",
            data: [10, 20, 81, 56, 55, 40],
        }
    ]
};
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

labels: ["<%= currentUser.datapoint1 %>", "<%= currentUser.datapoint2 %>", "<%= currentUser.datapoint3 %>"]

data: [<%= currentUser.datapoint10 %>, <%= currentUser.datapoint11 %>]
Run Code Online (Sandbox Code Playgroud)

如何使用EJS标签填充图形数据?(注意:在需要生成图表之前,EJS标记信息将已经保存到用户中)

jor*_*lis 6

是的,您可以使用EJS标签或跨各种viewjavascript框架使用的任何其他类似标签(例如,车把,流星中的空格键,ejs等)。Chart.js在运行时初始化,因此它不知道数据如何进入文件(例如,它不知道...也不关心...您的JavaScript是否经过预处理和生成) 。

标签本身的格式仅与存储数据的变量有关。我建议将您的labels和存储data在数组中并使用JSON.stringify()

// defined in your app
var labels = ['label 1', 'label 2', ...];
var data = [datapoint1, datapoint2, ...];

// in your EJS file.
var canvas = document.getElementById('myChart');
var data = {
  labels: <%- JSON.stringify(labels); %>,
  datasets: [
    {
      label: "My First dataset",
      backgroundColor: "rgba(255,99,132,0.2)",
      borderColor: "rgba(255,99,132,1)",
      borderWidth: 2,
      hoverBackgroundColor: "rgba(255,99,132,0.4)",
      hoverBorderColor: "rgba(255,99,132,1)",
      data: <%- JSON.stringify(data); %>,
    }
  ]
};
Run Code Online (Sandbox Code Playgroud)