Как записать в переменную, используя e js? - PullRequest
0 голосов
/ 28 апреля 2020

Я использую шаблонизатор e js. Массив хранится в system.os. Его необходимо записать в переменную osdata, чтобы впоследствии его можно было использовать для построения диграммы на графике. js.

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
                }
            }]
        }
    }
});

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Это можно сделать, добавив элемент 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-

0 голосов
/ 28 апреля 2020

Если вам нужно создать переменную, которая должна быть доступна для javascript, работающей на стороне клиента в браузере , вы должны использовать E JS, чтобы объявить ее в теге <script>:

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