所以我在登录页面上试图隐藏导航栏。我将导航栏放在nav元素中,并在元素中添加“ng-if”,仅在用户位于应用程序(而不是登录页面)时才进行渲染。
<!DOCTYPE html>
<html lang="en" ng-app="demoapp">
<head>
<!-- Angular & jQuery -->
<script src="js/jquery-3.2.0.min.js"></script><!-- load jquery -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script><!-- load angular -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script><!-- load ngRoute -->
</head>
<body>
<nav ng-if=false>
/... nav elements inside here
</nav>
<!-- to load ngRoute-->
<div ng-view></div>
</body>
但是当我登录页面时,导航栏仍会显示一秒钟,然后消失。它为什么这样做?我该如何阻止它?
答案 0 :(得分:1)
根据AngularJS文档&#34; ngCloak指令用于防止浏览器在加载应用程序时以原始(未编译)形式简要显示AngularJS html模板。使用此指令可避免由html模板显示引起的不良闪烁效应。
该指令可以应用于元素,但首选用法是将多个ngCloak指令应用于页面的一小部分,以允许逐步呈现浏览器视图。&#34;
答案 1 :(得分:0)
这是ngCloak
的用途:
<nav ng-cloak ng-if=false>
/... nav elements inside here
</nav>
答案 2 :(得分:0)
将ng-cloak
添加到您的body
代码中,这样可以防止附加了ng-if
属性的所有元素出现故障。