angular dygraph 中缺少第一次缩放数据

On first time zooming data is missing in angular dygraph

当我在加载图形时第一次缩放时,angular dygraph 中的数据丢失。以下是截图

缩放后

这是我的代码

function getPopUpGraph() {
        $scope.currentZoom = 1;
        $scope.popUpGraph = {};
        $scope.popUpGraph = {
            data: [],
            options: {
                labels: ["Date", $scope.selectedDataPoint.LegendName, "TrendLine"],
                showPopover: false,
                //customBars: true,
                legend: "onmouseover",
                highlightSeriesOpts: {
                    strokeWidth: 2,
                    strokeBorderWidth: 1
                },
                animatedZooms: true,
                interactionModel: Dygraph.defaultInteractionModel,
                showRangeSelector: true,
                rangeSelectorPlotLineWidth: 1,
                rangeSelectorPlotStrokeColor: 'gray',
                rangeSelectorPlotFillColor: 'gray',
                highlightCircleSize: 4,
                rangeSelectorAlpha: 0.9,
                rangeSelectorForegroundLineWidth: 1.25,
                rangeSelectorForegroundStrokeColor: 'dark gray',
                visibility: [true, false],
                series: {
                    'TrendLine': {
                        strokePattern: [3, 2, 3, 2]
                    },
                },
                //xlabel: 'Date',
                ylabel: $scope.selectedDataPoint.Unit,
                title: $scope.selectedDataPoint.LegendName,
                legendEnabled: false,
                colors: ["#ff0000"],
                valueRange: null,
                height: 300,
                resizeEnabled: true,
                strokeWidth: 2,
                axes: {
                    x: {
                        axisLabelFormatter: function (d, gran) {
                            if ($scope.currentZoomLevel.name == '12h') {
                                return $filter('date')(d, 'h:mm a');
                            }
                            else
                                return $filter('date')(d, 'MMM dd h:mm');
                        },
                        valueFormatter: function (ms) {
                            return $filter('date')(ms, 'M/d/yy h:mm a');
                        }
                    }
                },
                drawCallback: function (g, is_initial) {
                    if (g.dateWindow_)
                        myPopUpRange(g.dateWindow_)
                }
            }
        }
        $scope.getPopGraphData($scope.currentZoom, 0);
    }

正在从 $scope.getPopGraphData 函数中获取数据。

我正在调用这个主函数中的一些其他函数。我认为这不是问题。在 angular dygraph 的演示中,缩放后,范围选择器也会发生变化。所以数据显示正确。在我的例子中,范围选择器在第一次缩放时没有改变。 任何解决方案?提前致谢...

我找到了解决方案。在getPopUpGraph() 函数中,有一个缺点函数正在调用。在禁用 myPopUpRange() 函数时,它现在可以正常工作。 myPopUpRange() 用于重置 x 轴值。但是没有必要,因为dygraph会自动分配x轴范围。