Using a factory inside another factory AngularJS

user1876246 picture user1876246 · Apr 16, 2014 · Viewed 15.1k times · Source

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?

Answer

Dalorzo picture Dalorzo · Apr 16, 2014

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