Диаграмма Internet Explorer 11 с использованием случайных значений для обновления - PullRequest
0 голосов
/ 05 июня 2018

Проект построен с использованием vue.js.Графики работают нормально во всех браузерах, кроме IE11 (не тестировался в IE10 или ниже).

Вот диаграмма (chart.js):

 var dia_btc_values_2 = [];
  for (var i = 0; i < all_months_2.length; i++) {
    dia_btc_values_2.push(rnd(calc('btc_value_up', all_months_2[i])));

    var ctx = document.getElementById("myChart2").getContext('2d');
      var myChart = new Chart(ctx, {
        type: 'line',
        data: {
          labels: ["Start", "100 Tage", "1000 Tage", "2000 Tage"],
          datasets: [{
            label: '#',
            data: dia_btc_values_2,
            backgroundColor: [
              'rgba(69, 153, 231, 0.27)'
            ],
            borderColor: [
              'rgba(69, 153, 231, 1)'
            ],
            borderWidth: 3
          }]
        },
        options: {
          tooltips: {
              enabled: true,
              mode: 'single',
              callbacks: {
                  label: function(tooltipItems, data) {
                      return tooltipItems.yLabel + ' €';
                  }
              }
          },
          maintainAspectRatio: false,
          animation:{
            duration: 0
          },
          legend: {
            display: false
          },
          scales: {
            yAxes: [{
              ticks: {
                beginAtZero:true
              }
            }]
          }
        }
      });
      }

Диаграмма должна принимать значения из этого поля ввода:

<input type="range" min="1" max="5" step="1" v-model="szenario" id="szenario_range" v-on:change="up_szenario" v-on:input="up_szenario">

, и это метод up_szenario:

up_szenario: function() {
  var vm = this;
  switch (vm.szenario) {
    case '1':
      szenario = 7;
      vm.szenario_conv = 7;
      vm.hold_strategy = 12.5;
      break;
    case '2':
      szenario = 6;
      vm.szenario_conv = 6;
      vm.hold_strategy = 9;
      break;
    case '3':
      szenario = 5;
      vm.szenario_conv = 5;
      vm.hold_strategy = 7.5;
      break;
    case '4':
      szenario = 3;
      vm.szenario_conv = 3;
      vm.hold_strategy = 5.5;
      break;
    case '5':
      szenario = 1;
      vm.szenario_conv = 1;
      vm.hold_strategy = 1.8;
      break;
    default:
      vm.szenario_conv = 5;
      vm.hold_strategy = 7.5;
  }
}

Что вы получите, когда попробуете в IE11 - значение szenario является абсолютно случайным, например, когда szenario равен 1, это должно быть 7 из-за метода up_szenario, но это случайное число между 1и 7 и для этого показывает неправильный график / диаграмму.

Есть ли что-то, чего мне не хватает?Вам нужно больше информации?Спасибо

Редактировать: для лучшего понимания: Изменение ввода также должно изменить значение szenario, как в методе 'up_szenario', определенном.Но все, что делает IE11, это изменяет значение сценария, но не так, как объявлено, оно меняет его случайным образом между 1, 3, 5 и 7.

1 Ответ

0 голосов
/ 05 июня 2018

Нашел решение для всех, кто интересуется: есть функция, которая создает диаграммы, как только поле входного диапазона меняет свое значение.Обертывание с помощью функции setTimeout решило проблему.Похоже, у IE11 были проблемы с мгновенным выполнением функции createChart.

szenario_range_input.onchange = function() {    
    setTimeout(function() {     
        $('#myChart').remove();
        $('#myChart2').remove();
        $('.chart-mining-results').append('<canvas id="myChart" width="" height="128px"></canvas>');
        $('.chart-development').append('<canvas id="myChart2" width="" height="128px"></canvas>');
        charts();
    }, 150);    
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...