AngularJS - Inject Factory进入主模块的运行

时间:2014-08-12 05:40:06

标签: angularjs

我将工厂定义为app.factory('MyFactor'),我想将其注入我的主模块的.run()

我尝试将依赖项注入指令的方式相同:

app.run(['MyFactory', function(MyFactory)
{

}]);

但我得到一个错误,说这是一个未知的提供者。怎么了?

1 个答案:

答案 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/