Загрузка подробных данных при увеличении Dygraph

Я использую dygraphs.js, чтобы показать диаграмму. Первоначально отображается только часть всех данных, а при увеличении масштаба загружаются более подробные данные.

Я делаю вызов ajax на сервер в ZoomCallback, чтобы получить подробные данные, а затем снова инициализирую объект графика и увеличиваю масштаб до dateWindow. У меня проблема с этой функцией масштабирования. Проблема в том, что масштабирование работает впервые, и отображаются подробные данные, но если я снова масштабирую масштабированные данные, minX и maxX обратного вызова масштабирования не фиксируются правильно, и, следовательно, загрузка данных с сервера не выполняется, и ничего не видно график

Вот мой код javascript

function drawChart(data, myMinX, myMaxX) {
var dateWindow = null;
var drawPoints = $('#draw-points').prop('checked');
if (myMinX != undefined || myMinX != null)
    dateWindow = [myMinX, myMaxX];

$("#myMinX").val("");
$("#myMaxX").val("");
$("#isZoomed").val(false);

g = new Dygraph(document.getElementById("linechart_material"),
                    data,
                    {
                        showRangeSelector: false,
                        connectSeparatedPoints: true,
                        drawPoints: drawPoints,
                        zoomCallback: function (minX, maxX, yRanges) {


                                console.log("Zoomed to [", minX, ", ", maxX, "] -> Y-Range: ", yRanges[0]);
                                $("#isZoomed").val(true);
                                $("#myMinX").val(minX);
                                $("#myMaxX").val(maxX);

                                OnSubmit(null);

                        },
                        pointSize: 5,
                        highlightCircleSize: 10,
                        series: {
                            Original: {
                                drawPointCallback: pointShape,
                                drawHighlightPointCallback: pointShape
                            },
                            Simplified: {
                                drawPointCallback: pointShape,
                                drawHighlightPointCallback: pointShape
                            }
                        },
                        legend: 'always',
                        //colors: ["#A0354C", "#5B9833"]
                        colors: ["#63A0D7", "#ED7D31"],
                        dateWindow: dateWindow
                    });

    var height = $('#linechart_material').height();
    var width = $('#linechart_material').width();
    $('#height').val(height);
    $('#width').val(width);

}



 function OnSubmit(evt) {

 $.ajax({
        type: "POST",
        url: actionUrl,
        contentType: false,
        processData: false,
        data: data,
        success: function (result) {

            if (result != undefined && result != '') {
                session_data = result.Data;

                drawChart(result.Data, minX, maxX)

         }
            $("#isZoomed").val(false);
        },
        error: function (xhr, ajaxOptions, thrownError) {


        }
    });

}

Вот значения minX и maxX, зарегистрированные в консоли во время первого масштабирования, а затем снова масштабирования увеличенного графика соответственно Диапазон масштабирования

Пожалуйста, дайте мне знать, если я здесь что-то делаю не так.


person Swapnil17    schedule 12.05.2015    source источник
comment
Сообщите мне, если потребуется дополнительная информация!   -  person Swapnil17    schedule 12.05.2015
comment
Это то же самое, что и этот вопрос?   -  person danvk    schedule 12.05.2015
comment
@danvk: Это похоже на то, но, честно говоря, я не мог проследить за тем, как это было достигнуто, в ссылке, которую вы разместили в этом вопросе .. Есть ли более простое объяснение. Я новичок в этом   -  person Swapnil17    schedule 12.05.2015
comment
@danvk Я просмотрел пример, которым вы поделились. Кажется, что в этом примере подробные данные для увеличенного окна генерируются на самой стороне клиента в файле JGS.ServerDataSimulator.js. У нас работает подобное поведение. если мы установим новые данные в zoomcallback, он будет работать нормально. Проблема возникает только тогда, когда я пытаюсь ввести данные с помощью вызова ajax. При попытке увеличить масштаб во второй раз после вызова ajax значения minX и maxX в обратном вызове очень странные, они даже не кажутся числами (см. Снимок экрана выше). Если вы видели такое поведение, дайте мне знать!   -  person Swapnil17    schedule 13.05.2015