【问题标题】:Using a factory inside another factory AngularJS在另一个工厂AngularJS中使用工厂
【发布时间】:2014-04-16 16:56:36
【问题描述】:

我有一个模块...

angular.module('myModule', []);

然后是工厂

angular.module('myModule')
.factory('factory1', [
  function() {
    //some var's and functions
}
]);

然后是另一个工厂

angular.module('myModule')
.factory('factory2', [
  function() {
    //some var's and functions BUT I want to use some var's from factory1
}
]);

但是我想在 factory2 中使用 factory1 中的一些变量,如何将 factory1 注入到 factory2 中?

【问题讨论】:

    标签: javascript angularjs angularjs-factory angularjs-module


    【解决方案1】:

    这就是我会做的:

    一号工厂

    angular.module('sampleApp')
        .factory('factory1', function() {
            var factory1 = {};
    
            factory1.method1 = function () {
                return true;
            };
    
            factory1.method2 = function () {
                return "hello";
            };
    
            return factory1;
        }
    );
    

    第二工厂

    angular.module('sampleApp')
        .factory('factory2', ['factory1',
            function(factory1) {
    
                var factory2 = {};
    
                factory2.method3 = function () {
                    return "bye vs " + factory1.method2();
                };
    
                return factory2;
            }
        ]);
    

    【讨论】:

    • 感谢@MohammadSepahvand 不错的补充。
    • 是的,很棒。谢谢。?
    【解决方案2】:

    这就是我所做的并且工作正常。从 Session 调用 SessionPresenters

    angular.module('tryme3App')
        .factory('Session', function ($resource, DateUtils, SessionPresenters) {
            return $resource('api/sessions/:id', {}, {
                'query': { method: 'GET', isArray: true},
                'get': {
                    method: 'GET',
                    transformResponse: function (data) {
                        data = angular.fromJson(data);
    
                        var result = SessionPresenters.get({id: data.id})
                        data.presenters = result; 
                        return data;
                    }
                },
                'update': { method:'PUT' }
            });
        }).factory('SessionPresenters', function ($resource, DateUtils) {
            return $resource('api/session.Presenters/:id', {}, {
                'query': { method: 'GET', isArray: true},
                'get': {
                    method: 'GET', isArray: true
                },
                'update': { method:'PUT' }
            });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-26
      相关资源
      最近更新 更多