Please enable Javascript to correctly display the contents on Dot Net Tricks!

Understanding scope inheritance in AngularJS

 Print 
  Author : Shailendra Chauhan
Posted On : 29 Dec 2014
Total Views : 9,246   
Updated On : 26 Sep 2016
 

The $scope object used by views in AngularJS are organized into a hierarchy. There is a root scope, and the $rootScope can has one or more child scopes. Each controller has its own $scope (which is a child of the $rootScope), so whatever variables you create on $scope within controller, these variables are accessible by the view based on this controller.

For example, suppose you have two controllers: ParentController and ChildController as given below:

<!DOCTYPE html>
<html>
<head>
 <title>Angular Scope Inheritance</title>
 <script src="lib/angular.js"></script>
 <script>
 var app = angular.module('ScopeChain', []);

 app.controller("parentController", function ($scope) {
 $scope.managerName = 'Shailendra Chauhan';
 $scope.$parent.companyName = 'Dot Net Tricks'; //attached to $rootScope
 });
 app.controller("childController", function ($scope, $controller) {
 $scope.teamLeadName = 'Deepak Chauhan';
 });
 </script>
</head>
<body ng-app="ScopeChain">
 <div ng-controller="parentController ">
 <table style="border:2px solid #e37112">
 <caption>Parent Controller</caption>
 <tr>
 <td>Manager Name</td>
 <td>{{managerName}}</td>
 </tr>
 <tr>
 <td>Company Name</td>
 <td>{{companyName}}</td>
 </tr>
 <tr>
 <td>
 <table ng-controller="childController" style="border:2px solid #428bca">
 <caption>Child Controller</caption>
 <tr>
 <td>Team Lead Name</td>
 <td>{{ teamLeadName }}</td>
 </tr>
 <tr>
 <td>Reporting To</td>
 <td>{{managerName}}</td>
 </tr>
 <tr>
 <td>Company Name</td>
 <td>{{companyName}}</td>
 </tr>
 </table>
 </td>
 </tr>
 </table>
 </div>
</body>
</html>

How it works...

What do you think?

I hope you will enjoy the AngularJS scope hierarchy while developing your app with AngularJS. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.



Free Interview Books
 
COMMENTS
19 AUG
MEAN Stack 2 (Online)
5:30 Pm - 7:00 PM IST (+5:30 GMT)
19 AUG
ASP.NET MVC with Angular4 (Online)
10:30 Am to 12:30 PM IST (+ 5:30 GMT)
19 AUG
NodeJS with Angular4 (Classroom)
05:30 PM to 07:00 PM IST (+5:30 GMT)
12 AUG
Angular2 and Angular4 (Online)
08:00 AM - 10:00 AM IST(+5.30 GMT)
12 AUG
ASP.NET MVC with Angular4 (Classroom)
09:30 AM - 11:00 AM IST (+5:30GMT)
4 AUG
NodeJS with Angular4 (Online)
08:00 PM - 09:30 PM IST(+5.30 GMT)
26 JUL
ASP.NET MVC with Angular4 (Online)
07:00 AM - 09:00 AM IST(+5.30 GMT)
22 JUL
MEAN Stack 2 (Classroom)
04:00 PM - 05:30 PM IST(+5:30GMT)
20 JUL
Hadoop cum Administration (Online)
07:00 AM - 09:00 AM IST(+5:30 GMT)
15 JUL
ASP.NET MVC with Angular4 (Online)
03:30 PM - 05:30 PM IST(+5.30 GMT)
1 JUL
ASP.NET MVC with Angular4 (Classroom)
08:00 AM - 09:30 AM IST
1 JUL
MEAN Stack 2 (Classroom)
11:00 AM - 12:30 PM IST(+5:30 GMT)
30 JUN
Xamarin Forms : Build Cross-platform Apps (Online)
09:30 PM - 11:00PM IST(+5:30GMT)
6 JUN
ASP.NET MVC with Angular4 (Online)
09:00 PM-11:00 PM IST(+5.30 GMT)
LIKE US ON FACEBOOK
 
+