AngularJS handle data-binding mechanism with the help of three powerful functions: $watch(), $digest()
and $apply(). Most of the time AngularJS will call the $scope.$watch() and $scope.$digest() functions for you, but
in some cases you may have to call these functions yourself to update new values.