Ошибка загрузки данных в Echarts - PullRequest
0 голосов
/ 02 июля 2018

У меня проблемы с попыткой нарисовать точечную диаграмму с библиотекой Echarts . Не удается загрузить данные JSON (или любые другие) из контроллера в параметр Echarts

У меня есть это в моем JS:

var url = $( "#scatter" ).data( "url" );
var myChart = echarts.init(document.getElementById('scatter'));

myChart.setOption({
        tooltip: {},
        xAxis: {
            data: []
        },
        yAxis: {
            data: []
        },
        series: {
            symbolSize: 10,
            type: 'scatter'
        }
    });

$.post(url, function(data){    
    var datos = $.parseJSON(data);
    myChart.setOption({
        xAxis: {
            data: datos.pci
        },
        yAxis: {
            data: datos.cercania
        }
    });
});

И данные пришли с этого контроллера:

public function get_factibles(){
        $elementos = $this->oportunidades_md->getProductosFactibles();
        $productos = "[";
            foreach ($elementos as $elem) {
                $productos.= '{"pci": '.$elem->pci.',"cercania": '.$elem->cercania.',"id_producto": '.$elem->id_producto.',"ing": "'.str_replace('"','',$elem->ing).'","esp": "'.str_replace('"','',$elem->esp).'","sector": "'.str_replace('"','',$elem->categoria).'"},';
                            }
        $productos = substr($productos,0,-1);
        $productos .= "]";

        echo $productos; 
    } 

когда я проверяю файл console.log, я вижу, что данные правильно отображаются в виде объекта. Но я получаю эту ошибку в консоли

Uncaught TypeError: Cannot read property '0' of undefined
    at r.getLabel (echarts.min.js:24)
    at r.a.getTicksLabels (echarts.min.js:12)
    at Object.h.getFormattedLabels (echarts.min.js:11)
    at r.a [as getFormattedLabels] (echarts.min.js:12)
    at t.exports (echarts.min.js:23)
    at r.getLabelInterval (echarts.min.js:23)
    at n (echarts.min.js:23)
    at render (echarts.min.js:23)
    at a.<anonymous> (echarts.min.js:1)
    at Array.forEach (<anonymous>)

Если вы зарегистрировались на официальном сайте (здесь) , он практически не изменился, но все еще не работает. Как это может быть? Я работаю с Codeigniter и PostgreSQL

1 Ответ

0 голосов
/ 05 июля 2018

решаемая.

данные не загружаются, потому что я не добавил это, начиная файл

$(function(){    

    if ($('#scatter').length ) {

Echarts не может прочитать мой файл JSON (он написан правильно), поэтому мне пришлось создать массив для отображения точек

var puntos = new Array();            
    for (var i = 0; i < datos.length; i++) {
    puntos[i] = [datos[i].cercania , datos[i].pci, datos[i].id_producto, datos[i].esp, datos[i].ing, datos[i].sector];
};

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...