ロードする画像/スクリプトの数が多い場合、IEの主な問題のようです。{{stringExpression}}
マークアップ内のリテラルが表示され、角度のコンパイル/補間が完了すると消えるかなりの時間がある可能性があります。ドキュメント。
これが発生する一般的な理由はありますか?これは、一般的に何か間違っていることを示していますか?これを防ぐ既知の方法はありますか?
ロードする画像/スクリプトの数が多い場合、IEの主な問題のようです。{{stringExpression}}
マークアップ内のリテラルが表示され、角度のコンパイル/補間が完了すると消えるかなりの時間がある可能性があります。ドキュメント。
これが発生する一般的な理由はありますか?これは、一般的に何か間違っていることを示していますか?これを防ぐ既知の方法はありますか?
回答:
私はあなたがngCloak
ディレクティブを探していると思います:https : //docs.angularjs.org/api/ng/directive/ngCloak
ドキュメントから:
ngCloakディレクティブは、アプリケーションの読み込み中に、Angular htmlテンプレートがブラウザーによって未加工(コンパイルされていない)フォームで一時的に表示されないようにするために使用されます。このディレクティブを使用して、htmlテンプレートの表示によって引き起こされる望ましくないフリッカー効果を回避します。
ディレクティブは
<body>
要素に適用できますが、推奨される使用法はngCloak
、ページの小さな部分に複数のディレクティブを適用して、ブラウザービューのプログレッシブレンダリングを許可することです。
ngCloak
広く普及している/ベストプラクティスはありますか?簡単なことのようですが、AngularJSの経験はありません。
<head>
ためngCloak
に、html のセクションでangularjsスクリプトをロードします。
angular.js
すると、完全に機能することを確認でき<head>
ます。
また、の<span ng-bind="hello"></span>
代わりに使用することもできます{{hello}}
。
スクリプトが最後に読み込まれるときのclass = 'ng-cloak'アプローチの効果を向上させるには、次のcssがドキュメントの先頭に読み込まれていることを確認してください:
.ng-cloak { display:none; }
visibility: hidden
良いと思いませんか?
!important
CSS ハック(悪いこと)ですよね?CSSセレクター規則に違反します。
クローキング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ルールをページの先頭に追加します。
[ngcloak]
セレクターを自分で考えましたが、これはより完全です。
あなたの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