通过 EJS 将对象从 javascript 传递到 Chart.JS
Pass objects from javascript to Chart.JS through EJS
我有一个来自 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);
});
});
数据包含两个数组; 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]
}]
}
})
但它 returns 为空(即 labels = '')
我错过了什么吗?我尝试了不同的 ejs 标签,例如 <%- 但它 returns 相同。
亲切的问候,
D
数据是一个对象数组。您可以使用反引号按以下方式访问 emp_id:
labels: `<%= data[0].emp_id %>`, `<%= data[1].emp_id %>`, ... , `<%= data[n].emp_id %>`
您还可以将 emp_id 推入另一个数组,然后将该数组用作标签。
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]
}]
}
})
我有一个来自 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);
});
});
数据包含两个数组; 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]
}]
}
})
但它 returns 为空(即 labels = '')
我错过了什么吗?我尝试了不同的 ejs 标签,例如 <%- 但它 returns 相同。
亲切的问候, D
数据是一个对象数组。您可以使用反引号按以下方式访问 emp_id:
labels: `<%= data[0].emp_id %>`, `<%= data[1].emp_id %>`, ... , `<%= data[n].emp_id %>`
您还可以将 emp_id 推入另一个数组,然后将该数组用作标签。
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]
}]
}
})