【问题标题】:AngularJS - Accessing my factories in a module?AngularJS - 在模块中访问我的工厂?
【发布时间】:2014-06-06 22:20:01
【问题描述】:

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

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 是未定义的。我该怎么做?

【问题讨论】:

    标签: angularjs dependency-injection factory


    【解决方案1】:

    好吧,那我发现我的错误了;其实很简单。

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

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

    这是我应该做的(这是正确的):

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

    注意我没有将参数factory1 作为数组的一部分传递到资源的第二个参数中。

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

    【讨论】:

    • 在 AngularJS 依赖注入中这两种表示法都是可以接受的,即使你提到的文章也谈到了这种表示法。前者可以保护您免受缩小,而后者则不能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多