Angular-Chart无法读取未定义的'跳过'

时间:2017-05-02 04:10:39

标签: javascript angularjs charts

我在角度图表上有以下图表:

<canvas id="line" class="chart chart-line" chart-data="data"  chart-colors="colors"
        chart-series="series" chart-options="options">
</canvas>

使用以下选项:

$scope.options = {
  type:'line',
  tooltips: {
    enabled: false
  },
  showTooltips: false,
  hover: {mode: null},
  scales: {
    xAxes: [{
      type:"time"
    }]
  }
};

我通过这样的websocket更新数据:

channel.on("create:entry", function (msg) {
  // Before updating the data, set the new time to the current time
  $log.log("received entry");
  $log.log(msg);
  // Refetch the data points
  $scope.data[0].push(
    {
      x: new Date(),
      y: msg.sonnar
    });
  vm.current = msg.sonnar;
  vm.logEntries.splice(0, 0, {time: moment(new Date()).format("MMMM Do YYYY, h:mm:ss a"), level: msg.sonnar});

});

图表更新了几个条目的正确方法。但如果我将鼠标悬停在图表上,我会收到错误:

TypeError: Cannot read property 'skip' of undefined.

这是应用程序崩溃的图表js上的函数:

/**
     * Helper function to traverse all of the visible elements in the chart
     * @param chart {chart} the chart
     * @param handler {Function} the callback to execute for each visible item
     */
    function parseVisibleItems(chart, handler) {
        var datasets = chart.data.datasets;
        var meta, i, j, ilen, jlen;

        for (i = 0, ilen = datasets.length; i < ilen; ++i) {
            if (!chart.isDatasetVisible(i)) {
                continue;
            }

            meta = chart.getDatasetMeta(i);
            for (j = 0, jlen = meta.data.length; j < jlen; ++j) {
                var element = meta.data[j];
                if (!element._view.skip) {
                    handler(element);
                }
            }
        }
    }

任何人都可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:0)

降级到2.3.0修复了它!

npm install chart.js@2.3.0 --save

https://github.com/chartjs/Chart.js/issues/3753