Dyrektywa ng-cloak zostaje usunięta zbyt wcześnie

Mam aplikację kątową-js z niektórymi kontrolerami, które nie powinny być początkowo wyświetlane. Migają na ekranie, mimo że używam ng-cloak. Wydaje się, że problem polega na tym, że kompilacja jest wywoływana i usuwa dyrektywy i klasę ng-cloak, dzięki czemu zawartość kontrolerów jest widoczna, chociaż nie powinno być, ponieważ ng-show jest fałszywy.

Jeśli zatrzymam wykonywanie js w metodzie kompilacji ng-cloak, widzę, że elementy pojawiają się po usunięciu dyrektywy ng-cloak. Jeśli zatrzymam wykonywanie js w kontrolerze (na przykład na „$ scope.visible = false;”) widzę, że kontroler pozostaje widoczny na stronie. Sterownik jest wtedy niewidoczny, ponieważ powinien być później w trakcie ładowania.

Ładuję moje app.js i angular.js w dokumencie HEADMam css w dokumencie HEADDołączam regułę css ng-cloak z "! Important" w moim zewnętrznym css i inline

Jak mogę zapobiec miganiu? Dlaczego ng-cloak nie płaci za 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;
    }
]);

questionAnswers(5)

yourAnswerToTheQuestion