top button
Flag Notify
Site Registration

Explain AngularJS scope life-cycle?

+1 vote
366 views
Explain AngularJS scope life-cycle?
posted Oct 27, 2017 by Latha

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

0 votes

Scope data goes through a life cycle when the angular app is loaded into the browser. Understanding the
scope life cycle will help you to understand the interaction between scope and other AngularJS components.
The scope data goes through the following life cycle phases:
1. Creation – This phase initialized the scope. The root scope is created by the $injector when the application
is bootstrapped. During template linking, some directives create new child scopes.
A digest loop is also created in this phase that interacts with the browser event loop. This digest loop is
responsible to update DOM elements with the changes made to the model as well as executing any
registered watcher functions.
2. Watcher registration - This phase registers watches for values on the scope that are represented in the
template. These watches propagate model changes automatically to the DOM elements.
You can also register your own watch functions on a scope value by using the $watch() function.
3. Model mutation - This phase occurs when data in the scope changes. When you make the changes in your
angular app code, the scope function $apply() updates the model and calls the $digest() function to update
the DOM elements and registered watches.
When you do the changes to scope inside your angular code like within controllers or services, angular
internally call $apply() function for you. But when you do the changes to the scope outside the angular
code, you have to call $apply() function explicitly on the scope to force the model and DOM to be updated
correctly.
4. Mutation observation – This phase occurs when the $digest() function is executed by the digest loop at
the end of $apply() call. When $digest() function executes, it evaluates all watches for model changes. If
a value has been changed, $digest() calls the $watch listener and updates the DOM elements.
5. Scope destruction – This phase occurs when child scopes are no longer needed and these scopes are
removed from the browser’s memory by using $destroy() function. It is the responsibility of the child
scope creator to destroy them via scope.$destroy() API.
This stop propagation of $digest calls into the child scopes and allow the memory to be reclaimed by the
browser garbage collector.

answer Oct 27, 2017 by Shivaranjini
...