javascript - Angularjs 未知提供商 nvd3

标签 javascript angularjs d3.js frontend nvd3.js

我正在尝试使用 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']);

这是我的 Controller :

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 和 firebase API。 如有任何进一步阅读的建议或建议,我们将不胜感激。

最佳答案

您不需要在 Controller 中注入(inject)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 */ }
            }]);

关于javascript - Angularjs 未知提供商 nvd3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098210/

相关文章:

javascript - 为什么无法打开(暂停)单选按钮?

javascript - Jquery 用 % 代替 px 进行偏移 - 可能吗?

javascript - 支持 Latex 标记的 AngularJs 编辑器

jquery - 使用 cal-heatmap jquery 实现 csv

javascript - jQuery页面滚动事件逻辑——如何节流

javascript - 如何在 python 中获取完整的网页(使用 javascript)

javascript - 单击并拖动可排序的 jQuery div 时,该项目从浏览器中间跳转到左侧

javascript - 避免长 Angular $http 查询超时

angularjs 测试 ng-include 文件是否存在

javascript - D3 v4:具有嵌套g标签的任意复杂数组的元素之间的间距和绑定(bind)