Die ng-cloak-Direktive wird zu früh entfernt

Ich habe eine App von angle-js mit einigen Controllern, die anfangs nicht angezeigt werden sollten. Sie blinken auf dem Bildschirm, obwohl ich ng-cloak benutzt habe. Das Problem scheint zu sein, dass compile aufgerufen wird und die ng-cloak-Direktiven und -Klassen entfernt. Dadurch werden die Inhalte der Controller sichtbar, obwohl dies nicht der Fall sein sollte, weil ng-show falsch ist.

Wenn ich die Ausführung in der Kompiliermethode von ng-cloak pausiere, werden die Elemente angezeigt, wenn die Direktive ng-cloak entfernt wird. Wenn ich die Ausführung im Controller pausiere (zum Beispiel auf "$ scope.visible = false;"), kann ich sehen, dass der Controller auf der Seite sichtbar bleibt. Die Steuerung ist dann wieder unsichtbar, wie es später beim Laden sein sollte.

Ich lade meine app.js und angular.js in das Dokument HEADIch habe meine CSS im Dokument HEADIch habe die ng-cloak-CSS-Regel mit "! Important" in mein externes CSS und Inline eingefügt

Wie kann ich dieses Blinken verhindern? Warum respektiert ng-cloak ng-show nicht?

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;
    }
]);

Antworten auf die Frage(5)

Ihre Antwort auf die Frage