我使用的是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
}
}]
}
}
});
这可以通过添加一个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
,注释名为os
,包括前缀data-
如果您需要创建一个变量,以便在浏览器中运行客户端的javascript可以访问,那么您应该使用EJS在<script>
标记中声明它:
<script>let osdata = <%= user.name %>;</script>
<canvas id="deviceChart" width="400" height="300"></canvas>