【问题标题】:How to write to a variable using ejs?如何使用 ejs 写入变量?
【发布时间】:2020-08-12 13:01:10
【问题描述】:

我正在使用 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
                }
            }]
        }
    }
});

【问题讨论】:

    标签: javascript html node.js ejs


    【解决方案1】:

    这可以通过添加一个 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-

    【讨论】:

    • // JSON 让 osname = document.getElementById('osName').dataset.osname; //syntaxerror json 意外结束
    • 你写错了。这样写&lt;div id="osData" data-osname= ' ["Windows10","Windows7","LINUX7","MAC OS13"] '&gt;&lt;/div&gt; 调用let osname = document.getElementById('osData').dataset.osname; 并且再检查一下我的代码,之前我写ejs时犯了一个小错误
    【解决方案2】:

    如果您需要创建一个可供在浏览器中运行客户端的javascript访问的变量,您应该使用EJS在&lt;script&gt;标签中声明它:

    <script>let osdata = <%= user.name %>;</script>
    <canvas id="deviceChart" width="400" height="300"></canvas>
    

    【讨论】:

    • 要补充一点,您要确保在后端的ejs.render() 方法的data 对象中传递user 变量
    猜你喜欢
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2019-08-28
    • 2023-03-09
    • 2022-06-11
    • 2023-02-11
    相关资源
    最近更新 更多