2012-06-28 19 views
10

Esiste un approccio migliore per gestire "nessun dato" con JqPlot?Come gestire i dati in JqPlot

Supponendo che sto consumando i dati JSON con una chiamata AJAX, e, infine, non sono disponibili dati, ad esempio:

[['North'][0],['South'][0],['East'][0],['West'][0]] 
+0

Questo ha aiutato molto. JQPlot non dovrebbe restituire un grafico vuoto se non ci sono dati da rappresentare, invece di lanciare un'eccezione? Per me questo è uno stato valido, non un errore ... – Stefan

risposta

13

ho sempre una condizione che il check-in mia funzione AJAX, che verifica la presenza di alcun risultati. Quindi se non si verificano risultati, ho impostato un grafico in modo che sembri vuoto. Per questo motivo dovrebbe fare var data = [[null]], dove data è un parametro di jQuery.jqplot('chart', data, {}). Il valore di data potrebbe dipendere da un tipo di grafico, quindi l'ho testato per linea, barra e grafico a torta e funziona perfettamente.

Opzionalmente è anche possibile nascondere la legenda e forse altre parti della trama. Per me è sufficiente impostare solo il data e la legenda.

2

var data = [null]; genera errori nella console e interrompe ulteriormente l'esecuzione dello script JS. La soluzione migliore sarà utilizzare quanto segue.

var data = ['']; 
jQuery.jqplot('chart', data, {}); 

questo stampa eventuali grafici successivi e/o continuare JS script esecuzione senza errori in console FF/Chrome/IE. :-)

+0

Non sono sicuro di come funzioni per questo: fallirà '$ .isArray (data [0]) == false || data [0] .length == 0' in https://github.com/jqPlot/jqPlot/blob/1870d3beddd96dc62b948196c4eb9dfd5833e763/src/jqplot.core.js#L2063 – user60561

2

Nel mio caso è stato il contrario della risposta di Rahi (forse le doppie parentesi mancanti attorno a zero erano il problema), nel senso che sono d'accordo con Boro;

Questo funziona: var data = [[null]]; e questo: var data = ['']; genera un errore, una volta non importa se ho più grafici o solo uno senza dati.

Io corro jqPlot 1.0.9

L'errore che ottengo è: Uncaught Error: No data specified dalla condizione nello script jqPlot

if (0 == this.noDataIndicator.show) 
        throw new Error("No data specified");