2016-06-01 30 views
9

Mam ten prosty HTML:Uncaught TypeError: nie można odczytać właściwość 'offsetWidth' undefined - chart.js

<canvas id="myChart" width="400" height="400"></canvas> 

i to JS:

var ctx = document.getElementById("myChart"); 

    var myChart = new Chart(ctx, { 
     type: 'bar', 
     data: { 
      labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], 
      datasets: [{ 
       label: '# of Votes', 
       data: [12, 19, 3, 5, 2, 3], 
       backgroundColor: [ 
        'rgba(255, 99, 132, 0.2)', 
        'rgba(54, 162, 235, 0.2)', 
        'rgba(255, 206, 86, 0.2)', 
        'rgba(75, 192, 192, 0.2)', 
        'rgba(153, 102, 255, 0.2)', 
        'rgba(255, 159, 64, 0.2)' 
       ], 
       borderColor: [ 
        'rgba(255,99,132,1)', 
        'rgba(54, 162, 235, 1)', 
        'rgba(255, 206, 86, 1)', 
        'rgba(75, 192, 192, 1)', 
        'rgba(153, 102, 255, 1)', 
        'rgba(255, 159, 64, 1)' 
       ], 
       borderWidth: 1 
      }] 
     }, 
     options: { 
      scales: { 
       yAxes: [{ 
        ticks: { 
         beginAtZero: true 
        } 
       }] 
      } 
     } 
    }); 

Mimo że płótno jest skonfigurowany z myChart id, pojawia się następujący błąd:

Uncaught TypeError: Cannot read property 'offsetWidth' of undefined 

JSFiddle: https://jsfiddle.net/kroejrhx/

Odpowiedz

26

Po ponownym przeczytaniu pytania, oto Twój problem: używasz niewłaściwej wersji chart.js. Zgodnie z this section, jeśli chcesz użyć osi opartej na czasie, musisz jawnie dołączyć moment.js lub użyć wersji pakietu.

Zmiana zasobu w jsfiddle na https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.4/Chart.bundle.min.js spowoduje wyświetlenie oczekiwanego wykresu. Nie trzeba w ogóle zmieniać kodu.

+0

10x. Teraz nie otrzymuję żadnego błędu, ale nadal nie widzę wykresu. – ohadinho

+0

Bardzo dziękuję, ta wersja 2.1.4 naprawiona "Nie mogę odczytać właściwości" _view "nieokreślonego wydania" chartjs – kaxi1993

+0

Dziękuję, działało idealnie. – AndrewLeonardi

Powiązane problemy