このページhttp://docs.angularjs.org/guide/conceptsの「ランタイム」の説明に次の記述があります。
$evalAsync キューは、現在のスタック フレームの外で発生する必要がある作業をスケジュールするために使用されますが、ブラウザーのビューがレンダリングされる前です。これは通常、setTimeout(0) で行われますが、setTimeout(0) アプローチは速度が遅く、各イベントの後にブラウザーがビューをレンダリングするため、ビューのちらつきが発生する可能性があります。
スタック フレームの外で、ブラウザのビュー レンダーが意味する前に何が起こるか説明できますか?