【问题标题】:Angular Js $injector:unpr errorAngular Js $injector:unpr 错误
【发布时间】:2016-02-21 20:21:17
【问题描述】:

我是 Angular 的新手,我正在尝试实现自定义服务。代码如下:

app.js

angular.module('hrg', [
  'ui.router',
  'ui.bootstrap',
  'ngTouch',
  'ngAnimate',
  'ngCookies',
  'hrg.home'
])

.service('userService', ['', function(){
//data
}])

home.js

angular.module('hrg.home', ['ui.router'])

.controller('HomeController', ['$scope','$http','$cookies','$state','consts', 'userService',
  function($scope, $http, $cookies, $state, consts, userService) {
  //data
}])

index.html

<script src="app.js"></script>
<script src="components/home/home.js"></script>

错误是:[$injector:unpr] http://errors.angularjs.org/1.5.0/$injector/unpr?p0=userServiceProvider%20%3C-%20userService%20%3C-%20HomeController

我做错了什么?

【问题讨论】:

    标签: javascript angularjs angularjs-service


    【解决方案1】:

    您已将 '' 放入 userService 内联 DI 数组中,它要求 '' 是您问题的罪魁祸首。因为当您在控制器中注入 userService 依赖项时,角度注入器用于创建 userService 服务的实例。

    userService DI 数组解析依赖项时,它将'' 传递给injector,然后首先通过将其与Provider 后缀(如''+ 'Provider)连接来创建提供程序名称,并将结果作为依赖项名称Provider & 显然不存在这样的依赖。所以angular抛出异常$injector/unpr?意味着Injector unknown provider

    更改以下服务代码

                        //VVVVVVV//unwanted '' blank dependency
    .service('userService', ['', function(){
       //data
    }])
    

    .service('userService', [function(){ //removed `''` dependency
       //data
    }])
    

    【讨论】:

    • 非常感谢。问题解决了。得学点新东西。 :)
    • @tumulr 很高兴为您提供帮助..谢谢 :)