私は最初に表示すべきではないいくつかのコントローラを備えたangle-jsアプリケーションを持っています。彼らはng-cloakの使用にもかかわらず画面上で点滅します。この問題は、コンパイルが呼び出され、ng-cloakのディレクティブとクラスを削除するように思われます。これは、ng-showがfalseであるためではないにもかかわらずコントローラの内容が表示されるようにします。ng-cloakディレクティブがあまりにも早く削除されます
ng-cloakのコンパイルメソッドでjsの実行を一時停止すると、ng-cloakディレクティブが削除されたときに要素が表示されます。コントローラーでjsの実行を一時停止すると(たとえば、 "$ scope.visible = false;")、コントローラーがページに表示されたままになっているのがわかります。コントローラは、ロード中に後で表示されるはずですから、再び表示されません。
- 私は私が「重要!」とNG-マントのCSSルールが含まれている私は、文書のHEAD
- の私のCSSを持っている文書のHEAD
- で私app.jsとangular.jsをロードしています私の外部CSSとインライン
どうすればこの点滅を防ぐことができますか?なぜng-cloakはng-showに敬意を表しますか?
のindex.html:
<div ng-cloak class="ng-cloak" ng-controller="RoomsController" ng-show="visible">
<h1>This flashes, it can be seen if we set a breakpoint in the controller js, or after the ng-cloak directive's compile method in angular.js</h1>
</div>
app.js:
app.controller('RoomsController', ['$scope',
function ($scope) {
$scope.visible = false;
}
]);
コードを入れ子にしましたか?だからあなたは 'ng-cloak'と' ng-show'ディレクティブを持つ別のDIVの中にDIVを持っていますか? :) – AndreM96
ng-cloakが関係なく早期に削除されるため、なぜそれが役立つのかわかりません。しかし、あなたがそれを提案したので、私は試しました。無効。 – Salami