因此,在登录页面上时,我试图隐藏导航栏。我已将导航栏放在导航元素中,并在元素中放置了“ 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>


但是,当我进入登录页面时,导航栏仍会显示一秒钟,然后消失。为什么这样做呢?如何停止?

最佳答案

根据AngularJS文档,“ ngCloak指令用于防止AngularJS html模板在您的应用程序加载时被浏览器以其原始(未编译)形式短暂显示。使用此指令可避免html模板显示引起的不希望的闪烁效果。

该指令可以应用于该元素,但是首选用法是将多个ngCloak指令应用于页面的一小部分,以允许逐步呈现浏览器视图。”

请参考https://docs.angularjs.org/api/ng/directive/ngCloak

关于javascript - 即使ng-if的 Angular 为false,div也会在最初的几秒钟内呈现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45866362/

10-13 05:48