AngularJS推迟页面显示直到$ timeouts已经过去

时间:2015-12-04 14:15:15

标签: angularjs

我有一堆使用$ timeouts来应用样式的指令。这导致几毫秒,其中有一些内容未正确显示。有没有办法推迟AngularJS显示下一个模板,直到所有$ timeout样式都被应用?

1 个答案:

答案 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加载它时它会隐藏它。 这会导致页面加载的闪烁效果。

希望这有帮助。