AngularJS - 在模块中访问我的工厂?

时间:2014-06-06 22:20:01

标签: angularjs dependency-injection factory

我创建了一个自定义模块,如下所示:

function(window, angular, undefined, $, _) {
define(['app/scripts/config/resources'], function(config) {
    var ngCLGModule = angular.module('clg-module', []);

    ngCLGModule.factory('factory1', function() {
        return { /* My Factory 1 Methods */ }
    });  

    ngCLGModule.factory('factory2', function() {
        return { /* My Factory 2 Methods */ }
    });

});
});

我希望现在能够将factory1注入factory2。我尝试使用

ngCLGModule.factory('factory2', ['factory1', function(factory1) {
    return { /* My Factory 2 Methods */ }
}]);

但没有注入任何内容,factory1未定义。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

那么,我想出了我的错误;实际上很简单。

这是我正在做的事情(这是错误的):

ngCLGModule.factory('factory2', ['factory1', function(factory1) {
    return { /* My Factory 2 Methods */ }
}]);

这是我应该做的(这是对的):

ngCLGModule.factory('factory2', function(factory1) {
    return { /* My Factory 2 Methods */ }
});

注意我不会将参数factory1作为数组的一部分传递给资源的第二个参数。

对于任何有兴趣的人,this article帮助了我。