javascript - angular-chartjs折线图TypeError : t.合并不是函数

标签 javascript angularjs angularjs-directive chart.js angular-chart

我正在尝试使用折线图示例@ http://jtblin.github.io/angular-chart.js/ .我收到以下错误。谁能给我一些指示?

error in console

这是我的代码。我尝试将 html 移出 ui-view 以查看 Angular 是否有任何问题,但在布局页面上也不起作用。几乎复制粘贴了网站上的示例代码。

angular.module('app').controller(controllerId, [
        '$scope', function ($scope) {
          //Line Chart
            $scope.lineLabels = ["January", "February", "March", "April", "May", "June", "July"];
            $scope.lineSeries = ['Series A', 'Series B'];
            $scope.lineData = [
              [65, 59, 80, 81, 56, 55, 40],
              [28, 48, 40, 19, 86, 27, 90]
            ];
           
            $scope.lineDatasetOverride = [{ yAxisID: 'y-axis-1' }, { yAxisID: 'y-axis-2' }];
            $scope.lineOptions = {
                scales: {
                    yAxes: [
                      {
                          id: 'y-axis-1',
                          type: 'linear',
                          display: true,
                          position: 'left'
                      },
                      {
                          id: 'y-axis-2',
                          type: 'linear',
                          display: true,
                          position: 'right'
                      }
                    ]
                }
            };
          }
]);
<div class="box box-info">
    <div class="box-header with-border">
        <h3 class="box-title">Line Chart</h3>
        <div class="box-tools pull-right">
            <button type="button" class="btn btn-box-tool" data-widget="collapse">
                <i class="fa fa-minus"></i>
            </button>
            <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
        </div>
    </div>
    <div class="box-body">
        <div class="chart">
            <canvas id="line" class="chart chart-line" chart-data="lineData"
                    chart-labels="lineLabels" chart-series="lineSeries" chart-options="lineOptions"
                    chart-dataset-override="lineDatasetOverride"></canvas>
        </div>
    </div>
    <!-- /.box-body -->
</div>

最佳答案

检查你的angular版本...我认为你使用的是1.2.X版本并且它还没有合并功能,而angular-chart.js使用这个功能。

你可以做的是使用这段代码,把它放在 Angular 加载之后,图表加载之前......

if (!angular.merge) {
  angular.merge = (function mergePollyfill() {
    function setHashKey(obj, h) {
      if (h) {
        obj.$$hashKey = h;
      } else {
        delete obj.$$hashKey;
      }
    }

    function baseExtend(dst, objs, deep) {
      var h = dst.$$hashKey;

      for (var i = 0, ii = objs.length; i < ii; ++i) {
        var obj = objs[i];
        if (!angular.isObject(obj) && !angular.isFunction(obj)) continue;
        var keys = Object.keys(obj);
        for (var j = 0, jj = keys.length; j < jj; j++) {
          var key = keys[j];
          var src = obj[key];

          if (deep && angular.isObject(src)) {
            if (angular.isDate(src)) {
              dst[key] = new Date(src.valueOf());
            } else {
              if (!angular.isObject(dst[key])) dst[key] = angular.isArray(src) ? [] : {};
              baseExtend(dst[key], [src], true);
            }
          } else {
            dst[key] = src;
          }
        }
      }

      setHashKey(dst, h);
      return dst;
    }

    return function merge(dst) {
      return baseExtend(dst, [].slice.call(arguments, 1), true);
    }
  })();
}

我是从这里拿来的:deep merge objects with AngularJS

关于javascript - angular-chartjs折线图TypeError : t.合并不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39426974/

相关文章:

javascript - 使用 JavaScript 显示十分之一秒的最有效方法是什么?

angularjs - 使用组件作为 $mdDialog 的内联模板

angularjs - 带填充的容器指令

javascript - 为什么我的 Javascript 验证不起作用?

javascript - CKEditor - 不在帖子中提交数据

javascript - 如何找到子div位置的div特定的第N个 sibling

javascript - 如何从 .t​​hen 返回 promise

javascript - 在 ng-repeat 中按顺序生成数字

angularjs - 指令(嵌套在部分内)抛出 “Termplate must have exactly one root element”

AngularJS 在 $http 响应返回后执行链接功能