diretiva ng-cloak é removida muito cedo

Eu tenho um aplicativo angular-js com alguns controladores que não devem ser mostrados inicialmente. Eles piscam na tela apesar do meu uso de capa. O problema parece ser que a compilação é chamada e remove as diretivas e classes ng-cloak, o que torna o conteúdo dos controllers visível, embora não deva ser porque ng-show é falso.

Se eu pausar a execução do js no método de compilação do ng-cloak, eu posso ver os elementos aparecerem quando a diretiva ng-cloak é removida. Se eu pausar a execução js no controlador (por exemplo, em "$ scope.visible = false;"), posso ver que o controlador permanece visível na página. O controlador é então invisível novamente, como deve ser algum tempo depois no carregamento.

Estou carregando meu app.js e angular.js no documento HEADEu tenho meu css no documento HEADEu incluí a regra css ng-cloak com "! Important" no meu css externo e inline

Como posso evitar que isso pisque? Por que o ng-cloak não respeita o 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