通过 EJS 将对象从 javascript 传递到 Chart.JS

发布于 2025-01-17 00:49:30 字数 790 浏览 2 评论 0原文

我有一个来自 js 文件的对象(数据)。

router.get('/participant-module',(req,res)=>{

    let sql = dbModel.participant_per_module;
    db.query(sql, (err, result)=>{
        if(err) throw err;
        res.render('dashboard', {title:'Get', data:result});
        console.log(result);
    });
});

data 包含两个数组; emp_id 和 module_id;

我想将这个变量数据传递给ejs中的Chart JS数据。

  let pchart = new Chart(myChart, {
            type:'bar',
            data:{
              labels: '<%=data.emp_id%>',
                datasets:[{
                    label:'p',
                    data:[123,234,533,232]
                }]
            }
        })

但它返回 null (即 labels = '')

我错过了什么吗?我尝试过不同的 ejs 标签,例如 <%- 但它返回相同的结果。

亲切的问候, D

I have an object (data) coming from a js file.

router.get('/participant-module',(req,res)=>{

    let sql = dbModel.participant_per_module;
    db.query(sql, (err, result)=>{
        if(err) throw err;
        res.render('dashboard', {title:'Get', data:result});
        console.log(result);
    });
});

data contains two arrays; emp_id and module_id;

I wanted to pass this variable data to Chart JS data in ejs.

  let pchart = new Chart(myChart, {
            type:'bar',
            data:{
              labels: '<%=data.emp_id%>',
                datasets:[{
                    label:'p',
                    data:[123,234,533,232]
                }]
            }
        })

But it returns null (i.e. labels = '')

Am I missing something? I have tried different ejs tag like <%- but it returns the same.

Kind regards,
D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

揽月 2025-01-24 00:49:30

数据是对象的数组。您可以使用反引号按以下方式访问 emp_id:

labels: `<%= data[0].emp_id %>`, `<%= data[1].emp_id %>`, ... , `<%= data[n].emp_id %>`

您还可以将 emp_ids 推入另一个数组,然后使用该数组作为标签。

var Data = JSON.parse(`<%- JSON.stringify(data) %>`);
var labelsData = [];
for(var i = 0; i < Data.length; i++){
   labelsData.push(Data[i].emp_id);
}

let pchart = new Chart(myChart, {
    type:'bar',
    data:{
      labels: labelsData,
      datasets:[{
        label:'p',
        data:[123,234,533,232]
      }]
    }
})

Data is an array of objects. You can access the emp_id in following manner using backtick:

labels: `<%= data[0].emp_id %>`, `<%= data[1].emp_id %>`, ... , `<%= data[n].emp_id %>`

you can also push the emp_ids into another array and then use that array as labels.

var Data = JSON.parse(`<%- JSON.stringify(data) %>`);
var labelsData = [];
for(var i = 0; i < Data.length; i++){
   labelsData.push(Data[i].emp_id);
}

let pchart = new Chart(myChart, {
    type:'bar',
    data:{
      labels: labelsData,
      datasets:[{
        label:'p',
        data:[123,234,533,232]
      }]
    }
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文