javascript 在另一个工厂 AngularJS 中使用工厂

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/23115620/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 00:21:39  来源:igfitidea点击:

Using a factory inside another factory AngularJS

javascriptangularjsangularjs-factoryangularjs-module

提问by user1876246

I have a module...

我有一个模块...

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

And then a factory

然后是工厂

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

And then another factory

然后是另一个工厂

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

But I want to use some variables from factory1 inside factory2, how can I inject factory1 into factory2?

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

回答by Dalorzo

This is what I would do:

这就是我会做的:

On Factory One

在工厂一

angular.module('sampleApp')
    .factory('factory1', function() {
        var factory1 = {};

        factory1.method1 = function () {
            return true;
        };

        factory1.method2 = function () {
            return "hello";
        };

        return factory1;
    }
);

On Factory Two

在二厂

angular.module('sampleApp')
    .factory('factory2', ['factory1',
        function(factory1) {

            var factory2 = {};

            factory2.method3 = function () {
                return "bye vs " + factory1.method2();
            };

            return factory2;
        }
    ]);

回答by Sacky San

This is what i did and worked fine. Call SessionPresenters from Session

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

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' }
        });
    });