Digest cycle is what Angular JS triggers when a value in the model or view is changed. The cycle sets off the watchers which then match the value of model and view to the newest value. Digest cycle automatically runs when the code encounters a directive. The scope of the digest cycle is limited to that of Angular JS context. To synchronise changes in view and model that happen outside the Angular context, manual application of $apply() or $digest() is necessary. Digest cycle runs between 2 and 10 times when triggered.