2015-06-03 138 views
1

我想這裏引導以下顯示一個簡單的圖表: http://jtblin.github.io/angular-chart.js/類型錯誤:(中間值)[類型]不是函數

我使用sails.js,角,自舉和角度圖表。 js

當我加載應用程序,我得到一個空白圖像應該是一個圖表。我看到這個錯誤在Chrome瀏覽器開發工具:

TypeError: (intermediate value)[type] is not a function 
at createChart (angular-chart.js:175) 
at Object.fn (angular-chart.js:118) 
at Scope.$get.Scope.$digest (angular.js:14308) 
at Scope.$get.Scope.$apply (angular.js:14571) 
at bootstrapApply (angular.js:1455) 
at Object.invoke (angular.js:4203) 
at doBootstrap (angular.js:1453) 
at bootstrap (angular.js:1473) 
at angularInit (angular.js:1367) 
at angular.js:26304 

請原諒我,但我不知道爲什麼這個錯誤被彈出。

我已經嘗試過無數次的下面的代碼的變化,並感覺這個版本是最接近我已經得到一個工作示例。

查看:

<head> 
<link rel="stylesheet" href="/styles/angular-chart.css"> 
</head> 

<body ng-app="DashboardModule" ng-controller="BarCtrl"> 
<canvas id="bar" class="chart chart-bar" data="data" labels="labels"></canvas> 

<script src="/js/dependencies/sails.io.js"></script> 
<script src="/js/dependencies/angular.js"></script> 
<script src="/js/dependencies/Chart.Core.js"></script> 
<script src="/js/dependencies/angular-chart.js"></script> 
<script src="/js/private/dashboard/DashboardModule.js"></script> 
<script src="/js/private/dashboard/DashboardController.js"></script> 
</body> 

模塊:

angular.module('DashboardModule', ['chart.js']); 

控制器:

angular.module('DashboardModule').controller("BarCtrl", function ($scope) { 

$scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012']; 
$scope.series = ['Series A', 'Series B']; 

$scope.data = [ 
    [65, 59, 80, 81, 56, 55, 40], 
    [28, 48, 40, 19, 86, 27, 90] 
]; 
}); 
+0

如果您將錯誤包括在調用堆棧中,但通過查看代碼,我注意到的一件事是您試圖定義DashboardModule兩次。當你想添加一個控制器到現有的模塊時,你不需要指定依賴數組。所以對於你的控制器: angular.module('DashboardModule').controller(「BarCtrl」,function($ scope){ $ scope.labels = ['2006','2007','2008','2009 '','2010','2011','2012']; $ scope.series = ['Series A','Series B']; $ scopedata = [ [65,59,80,81 ,56,55,40], [28,48,40,19,86,27,90] ]; }); – ajliptak

+0

我添加了調用堆棧並對控制器進行了更改。我仍然得到相同的結果。 – CiscoKidx

+1

我將嘗試用完整代碼替換所有縮小的.js,並查看會發生什麼。希望調用堆棧至少更具描述性。 – CiscoKidx

回答

3

我認爲缺少的一部分可能將這些依賴:
- chart.js
- angular-chart.js

工作版本是在這裏:https://jsfiddle.net/cwLja39j/

FYI:對的jsfiddle,GitHub的文件可以被稱爲 「外部資源」 通過rawgit.com首先運行他們補充說。


標記:

<div ng-app="DashboardModule" ng-controller="BarCtrl"> 
<canvas id="bar" class="chart chart-bar" data="data" labels="labels"></canvas> 
</div> 

JS:

angular.module("DashboardModule", ["chart.js"]).controller("BarCtrl", function ($scope) { 
    $scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012']; 
    $scope.series = ['Series A', 'Series B']; 

    $scope.data = [ 
    [65, 59, 80, 81, 56, 55, 40], 
    [28, 48, 40, 19, 86, 27, 90] 
    ]; 
}); 

(使用瀏覽器,沒有在控制檯看到錯誤)

+1

你是對的。我錯誤地使用了「ChartCore.js」。而不是「Chart.js」。 一旦我替換了那個文件,而沒有改變上面代碼中的其他內容,那麼一切都很完美。這是100%的錯誤,因爲這種依賴性已經清楚地記錄在案。 – CiscoKidx

0

這可能是版本問題,使用chart.js之版本:1.1.1

+0

這應該是一個評論 –

相關問題