5

Tôi đang cố sử dụng ví dụ biểu đồ đường dây @http://jtblin.github.io/angular-chart.js/. Tôi nhận được lỗi sau. Bất cứ ai có thể cung cấp cho tôi một số con trỏ?biểu đồ dạng góc biểu đồ LoạiError: t.merge không phải là hàm

error in console

Đây là mã của tôi. Tôi đã thử di chuyển html ra khỏi ui-view để xem có bất kỳ vấn đề với góc cạnh nhưng không hoạt động trên trang bố trí một trong hai. Khá nhiều bản sao dán mã ví dụ từ trang web.

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>

Trả lời

2

Kiểm tra phiên bản góc của bạn ... Tôi nghĩ rằng bạn đang sử dụng phiên bản 1.2.X và nó không có chức năng merge nêu ra, và góc-chart.js sử dụng chức năng này.

Những gì bạn có thể làm là sử dụng mã này, đặt nó sau khi tải góc, và trước khi tải biểu đồ ...

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); 
    } 
    })(); 
} 

Tôi lấy nó từ đây: deep merge objects with AngularJS

Các vấn đề liên quan