我有一堆使用$ timeouts来应用样式的指令。这导致几毫秒,其中有一些内容未正确显示。有没有办法推迟AngularJS显示下一个模板,直到所有$ timeout样式都被应用?
答案 0 :(得分:1)
ng-cloak用于隐藏元素,直到它们准备好渲染,但我对此并不感兴趣。
我倾向于在控制器中使用变量......
$scope.loading = false
$timeout(function() {
// do stuff
$scope.loading = true
}, 2000);
然后在视图中......
<div ng-if="loading===true">
<!-- your page -->
</div>
我也发现你应该将你的角度<script>
放在HTML头部。
如果你像大多数人建议的那样把它放在页脚中,那么页面就不知道ng-if在遇到它时是什么意思。这会导致元素在屏幕上闪烁。然后当Angular加载它时它会隐藏它。
这会导致页面加载的闪烁效果。
希望这有帮助。