angularjs - 错误 : [$injector:unpr] Unknown provider: chart.

标签 angularjs dependency-injection angularjs-scope chart.js

我正在尝试使用这个插件 https://github.com/jtblin/angular-chart.js . 我收到了这个错误(我认为问题不在于插件,而在于我进行注入(inject)的方式!!):

Error: [$injector:unpr] Unknown provider: chart.jsProvider <- chart.js <- WhateverCtrl
http://errors.angularjs.org/1.3.20/$injector/unpr?p0=chart.jsProvider%20%3C-hart.js%20%3C-%20WhateverCtrl
    at http://mega.app/scripts/vendor.js:9895:12
    at http://mega.app/scripts/vendor.js:13863:19
    at Object.getService [as get] (http://mega.app/scripts/vendor.js:14010:39)
    at http://mega.app/scripts/vendor.js:13868:45
    at getService (http://mega.app/scripts/vendor.js:14010:39)
    at invoke (http://mega.app/scripts/vendor.js:14042:13)
    at Object.instantiate (http://mega.app/scripts/vendor.js:14059:27)
    at http://mega.app/scripts/vendor.js:18356:28
    at http://mega.app/scripts/vendor.js:44696:28
    at invokeLinkFn (http://mega.app/scripts/vendor.js:18113:9)

当我像下面这样全局注入(inject) chart.js 时,我没有收到任何错误。 (继续阅读)

angular.module('my-app', [
            'chart.js'      // <<<<<
            'ui.router',            
            'ngStorage',
            // ...
        ]);

})();

但根据我的理解,建议仅将此模块注入(inject)到使用它的 Controller 中,因此当我尝试将其注入(inject)到如下所示的 Controller 中时,会出现上述错误。

angular
    .module('my-app')
    .controller('WhateverCtrl', ctrl);

ctrl.$inject = ['chart.js'];     // <<<<<

function ctrl() {
    var vm = this;

// ...

但是,如果我从 ctrl.inject = ['chart.js']; 的注入(inject)行中删除 $,我确实摆脱了错误,但是 chart.js 不会工作,因为我想我必须将它传递给函数 function ctrl() { 就像这样 function ctrl(chart.js) { 这当然会因 ..

而导致错误

最佳答案

由于angular-chart.js本身就是一个模块,所以必须注入(inject)到模块中,不能注入(inject)到 Controller 中。

关于angularjs - 错误 : [$injector:unpr] Unknown provider: chart.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556517/

相关文章:

javascript - 当没有表单名称时如何清除AngularJS中的表单

angularjs - 仅在定义 $scope.myVar 后渲染 AngularJS 指令

javascript - 在新选项卡中打开发布请求

javascript - Angular JS ng-repeat 在一个文本区域元素中

php - Laravel 在特征构造函数中传递参数

dependency-injection - CaSTLe Windsor 无法注入(inject)一系列接口(interface)类型

javascript - ng-model 在模态中没有绑定(bind)两种方式

javascript - 使用 Angular JS 添加图像

android - 如何将 AndroidInjector 与子组件一起使用

javascript - 从 Angular js中的另一个ng-app调用方法