2015-07-23 11 views
5

Sto usando Python/Django con i modelli Django predefiniti. ho questo nella testa (file statici altro Django in questa posizione funziona bene):Come ottengo un'istanza di Chart per Chart.js

<script type="text/javascript" src="{% static "js/Chart.min.js" %}"></script> 

Naturalmente, ho Chart.min.js estratto dal maestro Chart.js scaricare nella directory statica js.

Nel mio corpo ho:

<div class="graph"> 
    <canvas id="dgraph" width="600" height="400"></canvas>    
</div> 

anche nel corpo ho:

<script type="text/javascript" src="{% static "js/stuff.js" %}"></script> 

In stuff.js ho:

var data = [ 
    { 
     value: 20, 
     color:"#878BB6" 
    }, 
    { 
     value : 40, 
     color : "#4ACAB4" 
    }, 
    { 
     value : 10, 
     color : "#FF8153" 
    }, 
    { 
     value : 30, 
     color : "#FFEA88" 
    } 
]; 

// Prendi il contesto dell'elemento canvas vogliamo selezionare

var ctx = document.getElementById("dgraph").getContext("2d"); 
new Chart(ctx).Doughnut(data, {}); 

Tuttavia, quando provo e visualizzare questa in un browser (Chrome come accade) Vedo questo nella console:

Uncaught ReferenceError: Chart is not defined 

Dove sulla terra è l'oggetto Chart ottenuto da? Sembra essere piuttosto fondamentale e mi sento come se avessi seguito tutte le istruzioni disponibili su google e stackoverflow. Per favore aiuto!

risposta

3

L'oggetto Chart è definito in Chart.min.js. Sembra che lo script non venga caricato.

penso che ti manca virgolette attorno al valore dell'attributo src nel tag <script> nell'intestazione - provare:

<script type="text/javascript" src="{% static 'js/Chart.min.js' %}"></script> 
+0

Grazie, l'ho provato con una sola citazione e virgolette doppie e senza gioia purtroppo. Buon punto anche se @rphv, non avevo notato che sul mio link src Chart.min.js, ora sto usando una virgoletta singola sul testo interno e raddoppio su tutto il link src. – Rodent

1

ho scoperto che spostando la Chart.min.js incluso riga sotto la jQuery ha incluso la linea, scaturisce nella vita. Mi piace così:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
    <!-- Include all compiled plugins (below), or include individual files as needed --> 
    <script type="text/javascript" src="{% static 'js/Chart.min.js' %}"></script> 

Presumibilmente Chart.js dipende da jQuery.

+0

No, Chart.js non dipende da jQuery - [ecco un esempio] (http://jsfiddle.net/rphv/brLkbnLh/). Tuttavia, potrebbe esserci qualcos'altro nel tuo caso, ad es. una collisione globale nello spazio dei nomi. – rphv

+0

Non so perché il mio codice funzioni ora quando non lo era prima. Non ho alcun riferimento alla variabile Chart ovunque tranne quando si utilizza Chart.js. – Rodent

Problemi correlati