The $scope
object that gets injected into controllers has some functionality. In addition to this, we will look at the hierarchies and digest cycle of scopes.
This is an important concept to understand with scopes. The digest cycle, from a high level, is a cycle that checks to see whether any scope variables have been changed. If they have, it then executes a function. Take binding a scope variable to the template with {{variable}}
. The digest cycle will now watch this variable and, anytime it changes, it will update the template. If the variable is bound anywhere else, it will be updated as well. This is how Angular "magically" makes values auto update.
A few things to keep in mind is that not everything in the scope is watched. The easiest way to have it watched is to bind it. You can also manually watch values. Also, remember that performance issues can arise when you are watching many variables. The digest cycle goes through all the watchers.