2016-06-01 47 views
9

ho questo semplice html:TypeError Uncaught: Impossibile leggere la proprietà 'offsetWidth' di indefinito - chart.js

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

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

Anche se la tela è configurato con myChart id, ottengo il seguente errore:

Uncaught TypeError: Cannot read property 'offsetWidth' of undefined 

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

risposta

26

Dopo aver rivisitato la domanda, ecco il problema: si sta utilizzando la versione errata di chart.js. Secondo this section, se si desidera utilizzare un asse basato sul tempo, è necessario includere esplicitamente moment.js o utilizzare la versione del pacchetto.

Cambiando la risorsa nel jsfiddle su https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.4/Chart.bundle.min.js verrà visualizzato il grafico previsto. Non c'è bisogno di cambiare il codice.

+0

10x. Ora non ho ricevuto alcun errore, ma ancora non vedo il grafico. – ohadinho

+0

Grazie mille questa versione 2.1.4 corretta 'Impossibile leggere la proprietà '_view' di undefined' problema di chartjs – kaxi1993

+0

Grazie, ha funzionato perfettamente. – AndrewLeonardi

Problemi correlati