我将工厂定义为app.factory('MyFactor')
,我想将其注入我的主模块的.run()
。
我尝试将依赖项注入指令的方式相同:
app.run(['MyFactory', function(MyFactory)
{
}]);
但我得到一个错误,说这是一个未知的提供者。怎么了?
答案 0 :(得分:12)
将实例注入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/