2014-11-24 73 views
2

我試圖使用nvd3來生成和更新圖表,因爲數據動態變化。我覺得我的確給供應商,以我的代碼,但是我遇到了這個錯誤,我不能確定我在做什麼錯:Angularjs未知供應商nvd3

Error: [$injector:unpr] Unknown provider: nvd3Provider <- nvd3 
http://errors.angularjs.org/1.2.18/$injector/unpr?p0=nvd3Provider%20%3C-%20nvd3 
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:78:12 
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:3741:19 
    at Object.getService [as get] (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:3869:39) 
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:3746:45 
    at getService (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:3869:39) 
    at invoke (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:3896:13) 
    at Object.instantiate (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:3917:23) 
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:7201:28 
    at link (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular-route.js:913:26) 
    at nodeLinkFn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.js:6633:13) <div ng-view="" class="ng-scope"> 

這是我的應用程序:

var myApp = angular.module('myApp', ['nvd3']); 

這是我的控制器:

myApp.controller('myCtrl',['$scope','nvd3', 
    function($scope){ 
       $scope.options = { /*my json chart options */ }; 
       $scope.data = { /* my json data */ } 
      }]); 

我用這個片段在我的index.html的庫:

<meta charset="utf-8"> <!-- it's important for d3.js --> 
    <script src="js/bower_components/angular/angular.js"></script> 
    <script src="js/bower_components/d3/d3.js"></script> 
    <script src="js/bower_components/nvd3/nv.d3.js"></script> 
    <script src="js/bower_components/angular-nvd3/dist/angular-nvd3.js"></script> 
    <link rel="stylesheet" href="js/bower_components/nvd3/nv.d3.css">  

,並嘗試使用生成圖表:

<div ng-controller="myCtrl"> 
    <nvd3 options="options" data="data"></nvd3> 
</div>   

其他(可能不相關)的信息,是我使用ngRoutes和火力點的API。 任何意見或建議,以進一步閱讀表示讚賞。

回答

2

你不需要在你的控制器注入nvd3

變化:

myApp.controller('myCtrl',['$scope','nvd3', 
    function($scope){ 
       $scope.options = { /*my json chart options */ }; 
       $scope.data = { /* my json data */ } 
      }]); 

要:

myApp.controller('myCtrl',['$scope', 
    function($scope){ 
       $scope.options = { /*my json chart options */ }; 
       $scope.data = { /* my json data */ } 
      }]); 
+0

非常感謝你,這固定它給我的! – eric 2014-11-24 21:58:39