我有一个工厂定义为 app.factory('MyFactor')
,我想将它注入(inject)到我的主模块的 .run()
中。
我尝试了将依赖项注入(inject)指令的相同方式:
app.run(['MyFactory', function(MyFactory)
{
}]);
但是我收到一个错误,说这是一个未知的提供者。怎么了?
最佳答案
将实例注入(inject) run
函数是可行的。这个问题有两个错误的答案,声称它没有。
考虑一下:
angular.module('app',[])
.factory('myFactory', function() {
return {
foo: function() { return 'bar' }
};
})
.run(['myFactory', function(myFactory) {
alert(myFactory.foo());
}]);
它运行时没有错误,并通过调用
myFactory
服务上的函数来警告结果(是的,即使您称其为工厂,它仍然是一项服务)。
您的错误很可能是由名称拼写错误引起的。在您发布的代码中,您的
app.factory('MyFactor')
缺少尾随的“y”。JSFIDDLE:http://jsfiddle.net/os4erzjx/
关于AngularJS - 将 Factory 注入(inject)主模块的运行中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25256917/