「コンパイルされていないコンテンツのフラッシュ」を回避するには、代わりにng-bind{{}}
を使用するか、ng-cloakを使用します。
<span ng-cloak ng-show="show">Hello, {{name}}!</span>
ng-cloak を使用し、HTML の head セクションに Angular.js をロードしない場合は、これを CSS ファイルに追加し、ページの上部にロードされるようにする必要があります。
[ng\:cloak], [ng-cloak], .ng-cloak { display: none; }
これらのディレクティブは最初のページでのみ使用する必要があることに注意してください。後で (ng-include、ng-view などを介して) 取り込まれたコンテンツは、ブラウザーがレンダリングする前に Angular によってコンパイルされます。
関連するセクションのみが DOM に読み込まれる ng-show / hide 以外のデータを読み込むより良い方法はありますか。
ng-show/ng-hide の代替手段として、 ng -include、ng-switch、および (v1.1.5 以降) ng-if があります。
<div ng-include src="someModelPropertySetToThePartialYouWantToLoadRightNow"></div>
ng-include と連携する ng-switch の例については、https://stackoverflow.com/a/12584774/215945も参照してください。
ng-switch と ng-if は DOM 要素を追加/削除しますが、ng-show/hide は CSS のみを変更することに注意してください (それが重要な場合)。