Ho un'app angular-js con alcuni controller che non dovrebbero essere mostrati inizialmente. Lampeggiano sullo schermo nonostante il mio uso di ng-cloak. Il problema sembra essere che la compilazione viene chiamata e rimuove le direttive e la classe ng-cloak, questo rende visibili i contenuti del controller anche se non dovrebbe essere perché ng-show è falso.La direttiva ng-cloak viene rimossa troppo presto
Se sospendere l'esecuzione js nel metodo di compilazione di ng mantello posso vedere gli elementi appaiono come direttiva ng mantello viene rimosso. Se metto in pausa l'esecuzione di js nel controller (ad esempio su "$ scope.visible = false;"), posso vedere che il controller rimane visibile sulla pagina. Il controller è quindi di nuovo invisibile come dovrebbe essere in un secondo momento nel caricamento.
- Sto caricando i miei app.js e angular.js nell'intestazione del documento
- ho il mio CSS nell'intestazione del documento
- ho incluso la regola CSS ng-mantello con "! Important" in il mio css esterno e in linea
Come posso evitare che questo lampeggi? Perché non ng-cloak paga rispetto a 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;
}
]);
Hai provato a nidificare il tuo codice? In modo che hai un DIV con 'ng-cloak' e al suo interno un altro DIV che ha la direttiva' ng-show'? :) – AndreM96
Non sei sicuro del motivo per cui sarebbe utile, dal momento che il ng-cloak viene rimosso presto indipendentemente. Ma ci ho provato perché lo hai suggerito. Nessun effetto. – Salami