我有一个工厂定义为 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/

10-10 00:07