How to share data between controllers in AngularJS ? Last Updated : 12 Jul, 2025 Comments Improve Suggest changes 2 Likes Like Report The task is to share data variables between two or more controllers by using AngularJS. There are many procedures to achieve this. Here we will discuss the most popular ones. Approach: To share data between the controllers in AngularJS we have two main cases: Share data between parent and child: Here, the sharing of data can be done simply by using controller inheritance as the scope of a child controller inherits from the scope of the parent controller.Share data between controllers without having a relation: Here, the sharing of data can be done in a few ways some of them are: By using the rootScope variable: We can use the rootScope variable to hold shared data and then can reference it from any controller. Here, at the start of the Angular app, we initialized the rootScope variable with some value and then refer it from every controller and thus binding scope variables in both controllers to the rootScope variable. Example 1: This example demonstrates the basic sharing of the data between controllers in AngularJS by using the rootScope variable. HTML <!DOCTYPE html> <html> <head> <title> Angular JS sharing data using rootScope </title> <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script> </head> <body> <h1 style="color:green;"> GeeksforGeeks </h1> <div ng-app="mainApp"> <div ng-controller="firstcontroller"> <h2>First controller</h2> <p>{{firstvalue}}</p> </div> <div ng-controller="secondcontroller"> <h2>Second controller</h2> <p>{{secondvalue}}</p> </div> </div> <script> var mainApp = angular.module("mainApp", []); mainApp.run(function ($rootScope) { $rootScope.value = 'A Computer Science Portal for Geeks'; }); mainApp.controller('firstcontroller', function ($scope, $rootScope) { $scope.firstvalue = $rootScope.value; }); mainApp.controller('secondcontroller', function ($scope, $rootScope) { $scope.secondvalue = $rootScope.value; }); </script> </body> </html> Output: By using factory or service: The $rootscope method is not preferred for data transfer or sharing data because it has a global scope that is available for the entire application. So, we use another method in which we create a factory or service to hold share data. AngularJS factories and services are JS functions that perform a specific task containing both methods & properties and can be injected into other components (e.g. your controllers) using dependency injection. In this way we can define a shared variable in a factory, inject it into both controllers and thus bind scope variables in both controllers to this factory data. Example 2: This example demonstrates the sharing of the data between controllers in AngularJS by using factory or service. HTML <!DOCTYPE html> <html> <head> <title> Angular JS sharing data using factory </title> <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script> </head> <body> <h1 style="color:green;"> GeeksforGeeks </h1> <div ng-app="mainApp"> <div ng-controller="FirstController"> <input type="text" ng-model="value.name"><br> Input in first controller is : {{value.name}} </div><hr> <div ng-controller="SecondController"> Input in second controller is : {{value.name}} </div> </div> <script> var mainApp = angular.module("mainApp", []); mainApp.factory('Fact', function () { return { name: '' }; }); mainApp.controller('FirstController', function ($scope, Fact) { $scope.value = Fact; }); mainApp.controller('SecondController', function ($scope, Fact) { $scope.value = Fact; }); </script> </body> </html> Output: Create Quiz Comment P pratyushranjan14 Follow 2 Improve P pratyushranjan14 Follow 2 Improve Article Tags : Technical Scripter Web Technologies AngularJS Technical Scripter 2019 AngularJS-Questions +1 More 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 Like