{{stringExpression}}
ロードする画像/スクリプトが多数ある場合、IEで主に問題になるようです。マークアップのリテラルが表示され、角度がコンパイル/補間されると消えるまでにかなりの時間がかかる場合があります。ドキュメント。
私が一般的に間違ったことをしていることを示すこれが起こる一般的な理由はありますか、またはこれを防ぐための既知の方法はありますか?
{{stringExpression}}
ロードする画像/スクリプトが多数ある場合、IEで主に問題になるようです。マークアップのリテラルが表示され、角度がコンパイル/補間されると消えるまでにかなりの時間がかかる場合があります。ドキュメント。
私が一般的に間違ったことをしていることを示すこれが起こる一般的な理由はありますか、またはこれを防ぐための既知の方法はありますか?
ngCloak
ディレクティブを探していると思います: https ://docs.angularjs.org/api/ng/directive/ngCloak
ドキュメントから:
ngCloakディレクティブは、アプリケーションの読み込み中にAngular htmlテンプレートが未加工の(コンパイルされていない)形式でブラウザーによって一時的に表示されないようにするために使用されます。このディレクティブを使用して、htmlテンプレートの表示によって引き起こされる望ましくないちらつきの影響を回避します。
ディレクティブは
<body>
要素に適用できngCloak
ますが、ブラウザビューのプログレッシブレンダリングを可能にするために、ページの小さな部分に複数のディレクティブを適用することをお勧めします。
<span ng-bind="hello"></span>
また、の代わりに使用することもできます{{hello}}
。
スクリプトが最後にロードされるときのclass='ng-cloak'アプローチの有効性を向上させるには、次のcssがドキュメントの先頭にロードされていることを確認してください。
.ng-cloak { display:none; }
クローキングCSSをページの先頭またはCSSファイルの1つに追加するだけです。
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide {
display: none !important;
}
次に、通常のAngularの慣例に従ってngCloakディレクティブを使用できます。これは、Angular自体が読み込まれる前でも機能します。
これはまさにAngularが行うことです。angular.jsの最後のコードは、上記のCSSルールをページの先頭に追加します。
あなたのCSSに以下を追加します
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
次に、コードにng-cloakディレクティブを追加できます。例えば、
<div ng-cloak>
Welcome {{data.name}}
</div>
それでおしまい!
ng-attr-src="{{variable}}"
の代わりに使用することもできますsrc="{{variable}}"
。属性は、コンパイラがテンプレートをコンパイルした後にのみ生成されます。これは、ドキュメントでここに記載されています:https ://docs.angularjs.org/guide/directive#-ngattr-attribute-bindings
@ pkozlowski.opensourceの回答に同意しますが、ng-clockクラスはng-repeatで使用するために機能しませんでした。したがって、{{name}}のような単純な区切り文字式にはclassを使用し、ng-repeatにはngCloakディレクティブを使用することをお勧めします。
<div class="ng-cloak">{{name}}<div>
と
<li ng-repeat="item in items" ng-cloak>{{item.name}}<li>