我使用的是一个ejs模板引擎。数组存储在system.os中。需要将其写入osdata变量,以便稍后可以使用它在chart.js上构建digram。
HTML:
<%= let osdata = user.name %> // doesn't work
<canvas id="deviceChart" width="400" height="300"></canvas>JS:
var ctx = document.getElementById('deviceChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green'],
datasets: [{
label: ' всего ',
data: osdata, //osdata
backgroundColor: [
'rgba(255, 99, 132)',
'rgba(54, 162, 235)',
'rgba(255, 206, 86)',
'rgba(75, 192, 192)',
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});发布于 2020-04-29 01:09:39
这可以通过添加div元素,然后在脚本中调用它来完成,如下所示:
HTML:
<div id="osData" data-os= <%= user.name %> ></div>
<canvas id="deviceChart" width="400" height="300"></canvas>JS:
<script>
let osData = document.getElementById('osData').dataset.os;
console.log(osData) //check your data here
</script>在这里,您将访问值为element.dataset.keyname,而键名是包含前缀data-的os
发布于 2020-04-29 00:20:50
如果你需要创建一个在浏览器中运行的javascript客户端可以访问的变量,你应该使用EJS在<script>标签中声明它:
<script>let osdata = <%= user.name %>;</script>
<canvas id="deviceChart" width="400" height="300"></canvas>https://stackoverflow.com/questions/61484875
复制相似问题