Привязка локальных переменных для Графиков в HTML
-
Как правильно привязывать. По документации что то не получается
Код:
<style type="text/css"> </style><div id= "${uuid}">'
<canvas id="myChart"></canvas>
</div><script type="text/javascript">
function drawChart(canvasId) {
const ctx = document.getElementById(canvasId); // .getContext('3d')
if (!ctx) {
console.log('canvas contex missing');} let x_arr = []; let y_arr = []; const points = window.ihapi.deviceValue('local674', 'report_graf_line_points') ; console.log( 'points' ); console.log( points ); points.sort((a, b) => a.x - b.x); for ( const item of points){ x_arr.push(item.x) y_arr.push(item.y) } const labels = x_arr ; // [2, 4, 6, 8, 10, 12, 14]; ось X const data = { labels: labels, datasets: [{ label: 'dataset1', data: y_arr, //ось Y [65, 59, 80, 81, 56, 55, 40] fill: false, borderColor: 'rgb(75, 192, 192)', tension: 0.1 } ] } const myChart = new Chart(ctx, { type: 'line', data: data });}
function loadScript(scriptId) {
const script = document.createElement('script');
script.id = scriptId;
script.src = '/files/chart.min.js'; // /files/chart.min.js https://cdn.jsdelivr.net/npm/chart.js https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.5.1/chart.min.js
// script.async = true;
document.head.appendChild(script);script.addEventListener('load', function() { drawChart('myChart'); }); script.addEventListener('error', function() { console.error('/files/chart.min.js loading failed'); return { err: '/files/chart.min.js loading failed' } });}
const scriptExists = document.getElementById('chart-js');
if (!scriptExists) {
loadScript('chart-js');
console.log('loadScript( chart-js )');
} else {
drawChart('myChart');
console.log('drawChart( myChart )');
}</script>

В консоли:

-
Вопрос решился неправильно локальную переменную указал. в Коде 674, а в реальности 676 должно быть
-
Доброго дня.
Для подписки правильно ли я формирую названия переменных для метода? А то что то не реагируют на действия кнопок.const subscribeList = [ // <-- НОВОЕ 'local638_scale_X', // <-- НОВОЕ 'local637_scale_Y', // <-- НОВОЕ 'local644_new_rec_table_12_3', // <-- НОВОЕ 'local670_report_enabledFlags' // <-- НОВОЕ ]; // <-- НОВОЕ // Получаем начальные значения через deviceValue // <-- НОВОЕ prevScaleX = window.ihapi.deviceValue('local638', 'scale_X'); // <-- НОВОЕ prevScaleY = window.ihapi.deviceValue('local637', 'scale_Y'); // <-- НОВОЕ prevRecipeData = window.ihapi.deviceValue('local644', 'new_rec_table_12_3'); // <-- НОВОЕ prevFlags = window.ihapi.deviceValue('local670', 'report_enabledFlags'); // <-- НОВОЕ // Подписываемся на изменения // <-- НОВОЕ window.ihapi.deviceSub(myUuid, subscribeList); // <-- НОВОЕ -
Да вы все делаете правильно. Нужно еще добавить window.ihapi.addEventListener(uuid, "data", onData);
чтобы при изменении переменных клиента вызывалась функция onData и данные обновлялись
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти