错误:[$ injector:unpr]未知提供商

时间:2014-08-05 22:13:15

标签: angularjs

我使用名为uIdentity的Angular设置了一项服务。但是,当我试着这样称呼它时:

app.controller('foo', function(uIdentity){});

我收到此错误消息:

  

错误:[$ injector:unpr]未知提供者:uIdentityProvider< -   uIdentity

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

试试这个

app.controller('foo', ['uIdentity',function(uIdentity){

}]);

或更多项目

app.controller('foo', ['$scope','uIdentity',function($scope, uIdentity){

}]);

基本上,您定义了对象的名称,它们将按顺序映射。另一个例子: -

app.controller('foo', ['$scope','uIdentity',function($x, y){
   //$x is $scope and y is uIdentity

}]);

如果你因为你在uIdentity本身出了问题而得到错误。

通常,您可能希望始终使用该语法。它还可以使您的代码在uglification / minification / obfuscation中具有弹性。

确保定义依赖项

app.service('uIdentity', [function(){

}]);

答案 1 :(得分:0)

您必须确保您的提供商与您的应用程序位于相同的angular.module中,或者您的应用程序取决于您的提供商所在的模块。

如果您的uIdentity - 提供商是名为myIdentityModule的模块的一部分,例如您的应用程序需要myIdentityModule作为依赖项。

您的代码可能像

angular.module('app', ['myIdentityModule'])