我使用名为uIdentity的Angular设置了一项服务。但是,当我试着这样称呼它时:
app.controller('foo', function(uIdentity){});
我收到此错误消息:
错误:[$ injector:unpr]未知提供者:uIdentityProvider< - uIdentity
我该如何解决这个问题?
答案 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'])