2012-06-28 18 views
10

¿Existe un mejor enfoque para manejar "sin datos" con JqPlot?Cómo no manejar datos en JqPlot

Suponiendo que estoy consumiendo datos JSON con una llamada AJAX, y, finalmente, no hay datos disponibles, por ejemplo:

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

Esto ayudó mucho. ¿No debería JQPlot devolver un gráfico vacío si no hay datos para representar, en lugar de arrojar una excepción? Para mí, este es un estado válido, no es un error ... – Stefan

Respuesta

13

siempre tengo una condición que puedo comprobar en mi función AJAX, que comprueba si no hay resultados. Luego, si no hay resultados, configuro un gráfico para que parezca vacío. Por este motivo, debe hacer var data = [[null]], donde data es un parámetro de jQuery.jqplot('chart', data, {}). El valor de data puede depender de un tipo de gráfico, por lo tanto, lo probé para líneas, barras y gráficos circulares, y funciona bien.

Opcionalmente también puede ocultar la leyenda y tal vez otras partes de la trama. Para mí, solo establecer el data y la leyenda siempre es suficiente.

2

var data = [null]; provocarán errores en la consola y detendrán aún más la ejecución de scripts JS. La mejor solución será usar lo siguiente.

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

Esto imprimirá ningún gráficas posteriores y/o continuar JS ejecución de secuencias de comandos sin errores en las consolas FF/cromo/IE. :-)

+0

No estoy seguro de cómo funciona esto para usted - fallará '$ .isArray (datos [0]) == falso || data [0] .length == 0' en https://github.com/jqPlot/jqPlot/blob/1870d3beddd96dc62b948196c4eb9dfd5833e763/src/jqplot.core.js#L2063 – user60561

2

En mi caso, era lo contrario a la respuesta de Rahi (tal vez faltaban los corchetes que faltaban alrededor del nulo), lo que significa que estoy de acuerdo con Boro;

Esto funciona: var data = [[null]]; y esto: var data = ['']; genera un error, una vez no importa si tengo varios gráficos o sólo uno sin datos.

estoy corriendo jqPlot 1.0.9

El error que consigo es: Uncaught Error: No data specified de la condición en la secuencia de comandos jqPlot

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