AngularJS Factory Method Last Updated : 19 Oct, 2023 Suggest changes Share 3 Likes Like Report AngularJS Factory Method makes the development process of AngularJS applications more robust. A factory is a simple function that allows us to add some logic to a created object and return the created object. The factory is also used to create/return a function in the form of reusable code which can be used anywhere within the application. Whenever we create an object using a factory it always returns a new instance for that object. The object returned by the factory can be integrated(injectible) with different components of the Angularjs framework such as controller, service, filter, or directive. Use: A practical Scenario Factory generally acts as a container or class for a collection of functions that fulfills different features of the application. When used with a constructor function it can be initiated within different Controllers. Syntax: module.factory( 'factoryName', function(){ Custom code....});Example 1: The following example illustrates the use of factory code instantiated inside a controller to generate a random number. HTML <!DOCTYPE html> <html> <head> <title>Factory Example 1</title> <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"> </script> <script> var application = angular.module('myApp', []); application.factory('random', function () { var randomObject = {}; var number = Math.floor(Math.random() * 100); randomObject.generate = function () { return number; }; return randomObject; }); application.controller('thisapp', function ($scope, random) { $scope.generateRandom = function () { $scope.randomNumber = random.generate(); }; }); </script> </head> <body> <h1 style="color:green">GeeksforGeeks</h1> <h2>Factory Examples</h2> <div ng-app="myApp" ng-controller="thisapp"> <button ng-click="generateRandom()"> Generate Random Number </button> <br>{{randomNumber}} </div> </body> </html> Output: On Clicking the generate random number button we get a different number every time. In this example, we use the factory method to define a function that carries a variable and using the Math.random we store a random value to that variable every time this function is called. This function is then called in the controller whose $scope variable carries the random value from the called function we then call this controller to our HTML code to display the result. Example 2: This example makes use of a factory to create a function to find the addition or subtraction of two numbers. this function is then loaded in the controller $scope variable which passes them to the HTML code for displaying the results. HTML <!DOCTYPE html> <html> <head> <title>Factory Example 2</title> <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"> </script> <script> var application = angular.module('myApp', []); application.factory('MyFactoryService', function () { var factory = {}; factory.Subtract = function (a, b) { return a - b; }; factory.Add = function (a, b) { return a + b; }; return factory; }); application.controller('thisapp', function ( $scope, MyFactoryService) { $scope.result = function () { $scope.results = MyFactoryService.Subtract($scope.num1, $scope.num2) }; $scope.result2 = function () { $scope.results = MyFactoryService.Add($scope.num1, $scope.num2) }; }); </script> </head> <body> <h1 style="color:green">GeeksforGeeks</h1> <h2>Factory Example 2</h2> <div ng-app="myApp" ng-controller="thisapp"> <p> Enter A Number: <input type="number" ng-model="num1" /> <br /> Enter A Number: <input type="number" ng-model="num2" /> <br /> </p> <button ng-click="result()">Subtract</button> <button ng-click="result2()">Add</button> <p>Results: {{results}} </div> </body> </html> Output: R RohaanKhan Follow 3 Article Tags : Web Technologies AngularJS Explore AngularJS BasicsAngularJS Tutorial 5 min read Introduction to AngularJS 4 min read Angular CLI | Angular Project Setup 3 min read AngularJS Expressions 2 min read AngularJS Modules 3 min read AngularJS ng-model Directive 4 min read AngularJS Data Binding 4 min read AngularJS Controllers 3 min read AngularJS | Scope 2 min read AngularJS Services 4 min read AngularJS | AJAX - $http 3 min read AngularJS | Tables 2 min read AngularJS Select Boxes 2 min read AngularJS SQL 3 min read AngularJS HTML DOM 2 min read AngularJS Events 3 min read AngularJS | Forms 3 min read AngularJS Form Validation 3 min read AngularJS | API 2 min read AngularJS and W3.CSS 2 min read AngularJS Includes 3 min read AngularJS Animations 1 min read AngularJS | Application 3 min read AngularJS DirectivesAngularJS Directives 9 min read AngularJS ng-app Directive 1 min read AngularJS ng-bind Directive 2 min read AngularJS ng-bind-html Directive 2 min read AngularJS ng-bind-template Directive 2 min read AngularJS ng-blur Directive 1 min read AngularJS ng-change Directive 2 min read AngularJS ng-checked Directive 2 min read AngularJS ng-class Directive 2 min read AngularJS ng-class-even Directive 2 min read AngularJS ng-class-odd Directive 2 min read AngularJS ng-click Directive 2 min read AngularJS ng-cloak Directive 2 min read AngularJS ng-controller Directive 2 min read AngularJS Directives Complete Reference 2 min read AngularJS FiltersAngularJS | Filters 7 min read AngularJS currency Filter 2 min read AngularJS | date Filter 2 min read AngularJS filter Filter 3 min read AngularJS json Filter 2 min read AngularJS limitTo Filter 2 min read AngularJS lowercase Filter 1 min read AngularJS number Filter 1 min read AngularJS orderBy Filter 4 min read AngularJs uppercase Filter 1 min read AngularJS Converting FunctionsAngularJS angular.lowercase() Function 2 min read AngularJS angular.uppercase() Function 1 min read AngularJS angular.forEach() Function 1 min read AngularJS Comparing FunctionsAngularJS angular.isArray() Function 2 min read AngularJS angular.isDate() Function 2 min read AngularJS angular.isDefined() Function 2 min read AngularJS angular.isElement() Function 2 min read AngularJS angular.isFunction() Function 2 min read AngularJS angular.isNumber() Function 2 min read AngularJS angular.isObject() Function 2 min read AngularJS | angular.isString() Function 1 min read AngularJS angular.isUndefined() Function 2 min read AngularJS angular.equals() Function 2 min read AngularJS angular.toJson() Function 2 min read AngularJS QuestionsHow to bundle an Angular app for production? 4 min read How to add many functions in one ng-click directive? 2 min read How to directly update a field by using ng-click in AngularJS ? 3 min read How to Add Dynamic Options for Multiple Selects Inside ng-repeat Directive ? 3 min read How to detect when an @Input() value changes in Angular? 3 min read How to open popup using Angular and Bootstrap ? 2 min read How to reload or re-render the entire page using AngularJS? 2 min read How to add input fields dynamically on button click in AngularJS ? 2 min read How to Create Button Dynamically with Click Event in Angular ? 2 min read How to use jQuery in Angular ? 2 min read AngularJS Examples 2 min read My Profile ${profileImgHtml} My Profile Edit Profile My Courses Join Community Transactions Logout Like