【问题标题】:EJS Tags with ChartJS?EJS 标签与 ChartJS?
【发布时间】:2017-08-26 04:38:34
【问题描述】:

是否可以使用 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],
        }
    ]
};

我想做这样的事情:

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

data: [<%= currentUser.datapoint10 %>, <%= currentUser.datapoint11 %>]

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

【问题讨论】:

    标签: node.js mongodb express chart.js ejs


    【解决方案1】:

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

    标签本身的格式与您存储数据的变量有关。我建议将您的 labelsdata 存储在数组中并使用 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); %>,
        }
      ]
    };
    

    【讨论】:

      【解决方案2】:

      最简单的方法是在 EJS 标签中使用JSON.stringify()。你可以这样做

      labels: <%- JSON.stringify(data.labels); %>,
      data: <%- JSON.stringify(data.datasets.data); %>
      

      它基于您的 data 变量。因此,您可能需要相应地调整此代码。

      【讨论】:

        猜你喜欢
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多