如何使用ejs写入变量



我使用的是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>

最新更新