错误:[$ injector:unpr]未知提供者:ngCsvProvider< - ngCsv< - dynamicDemoController

时间:2016-11-02 12:51:50

标签: javascript angularjs dependency-injection

以下是我的情景:

  • 文件 A.js ,用于定义主模块。
  • 文件 B.js 延迟加载(在角度引导之后),它包含一个控制器和一些指令。

档案 A.js

var APP = angular.module('app.hello', ['ui.router', 'ngAnimate', 'ngTable', 'ngSanitize', 'ngCsv']);

(function() {

  APP.config(function ($controllerProvider, $compileProvider) {
    APP.loadController = $controllerProvider.register;
    APP.loadDirective = $compileProvider.directive;
  });

})();

文件 B.js

(function() {
  "use strict";

  APP.loadController("dynamicDemoController", dynamicDemoController);
  dynamicDemoController.$inject = ["NgTableParams", "ngCsv"]; // <-- err

  function dynamicDemoController(NgTableParams, CSV) {
   // ...
  }

})();

我完美地注射NgTableParams,但我无法注射&#34; ngCsv模块,我在控制台中收到此错误:

  

错误:[$ injector:unpr]未知提供者:ngCsvProvider&lt; - ngCsv&lt; -   dynamicDemoController

知道我可能错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您正试图在controller中注入一个模块,这就是导致错误的原因。

  dynamicDemoController.$inject = ["NgTableParams", "ngCsv"]; // <-- err

ngCsvmodule而不是service

模块的加载应限制为angular.module

var myapp = angular.module('myapp', ['ngCsv'])