Intra Forum
    • Категории
    • Последние
    • Метки
    • Популярные
    • Зарегистрироваться
    • Войти

    Привязка локальных переменных для Графиков в HTML

    Запланировано Прикреплена Закрыта Перенесена HTML виджеты
    4 Сообщения 2 Posters 67 Просмотры 2 Watching
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • G Не в сети
      grinsva
      отредактировано

      Как правильно привязывать. По документации что то не получается

      Код:
      <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>

      e226fd33-dbb8-4d6d-8c6f-eb574e0be08e-image.jpeg

      В консоли:
      65444dfd-3e44-4df1-93b9-4950328df309-image.jpeg

      1 ответ Последний ответ Ответить Цитировать 0
      • G Не в сети
        grinsva
        отредактировано

        Вопрос решился неправильно локальную переменную указал. в Коде 674, а в реальности 676 должно быть

        1 ответ Последний ответ Ответить Цитировать 0
        • G Не в сети
          grinsva
          отредактировано grinsva

          Доброго дня.
          Для подписки правильно ли я формирую названия переменных для метода? А то что то не реагируют на действия кнопок.

          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); // <-- НОВОЕ
          
          1 ответ Последний ответ Ответить Цитировать 0
          • M Не в сети
            maksimvershinin Intra Support
            отредактировано

            Да вы все делаете правильно. Нужно еще добавить window.ihapi.addEventListener(uuid, "data", onData);
            чтобы при изменении переменных клиента вызывалась функция onData и данные обновлялись

            1 ответ Последний ответ Ответить Цитировать 0

            Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.

            Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

            С вашими комментариями этот пост может стать ещё лучше 💗

            Зарегистрироваться Войти
            • Первое сообщение
              Последнее сообщение