javascript - AngularJS中登录成功后才重定向到页面并隐藏菜单

标签 javascript html angularjs redirect

我想在成功登录后重定向到主页。在那之前我想要一个只有登录屏幕的空白页面。

目前它在成功登录后重定向,但我需要一种方法来禁用菜单栏并仅显示登录页面直到登录为止。

我有一个路线提供商,其代码如下:-

    .when("/login", {
        templateUrl : "../view/login.html",
        controller : "loginController"

    }).otherwise({
    redirectTo:'/'
    });

我能够成功加载登录页面。身份验证成功后将重定向到所需页面。

Controller 代码如下:-

     $scope.validUser = function(){
    if($scope.username != $scope.password)
        {$scope.message = "authentication unsuccessful, Please try again!";}
    else
    {$scope.message = "authentication successful, You will now be redirected 
    in 5 seconds";
    $timeout(function() {
          $location.path('/');
          }, 5000);
      }
      }

主页代码:

             <body>
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-
         toggle="collapse" data-target="#navbar" aria-expanded="false" aria-
        controls="navbar">
                <span class="sr-only">Toggle navigation</span> <span
                    class="icon-bar"></span> <span class="icon-bar"></span> 
         <span
                    class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">EHS-Analytics</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li class="dropdown" uib-dropdown>
                    <a href="" id="overviews" class="dropdown-toggle" uib-
             dropdown-toggle aria-haspopup="true" aria-expanded="false">
                        Overviews <span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu" uib-dropdown-menu aria-
           labelledby="overviews">
                        <li><a href="#!uploadData">Upload Data</a></li>
                    </ul>
                </li>
                <li class="dropdown" uib-dropdown>
                    <a href="" id="goals" class="dropdown-toggle" uib-
                    dropdown-toggle aria-haspopup="true"
                    aria-expanded="false">Goals <span class="caret"></span>
                 </a>
                    <ul class="dropdown-menu" uib-dropdown-menu aria-
                 labelledby="goals">
                        <li><a href="#">Goal Builder</a></li>
                        <li><a href="#">Customize Goal</a></li>

                    </ul></li>
                <li class="dropdown" uib-dropdown>
                    <a href="" id="measures" class="dropdown-toggle" uib-
               dropdown-toggle aria-haspopup="true"
                    aria-expanded="false">Measures <span class="caret">
            </span></a>
                    <ul class="dropdown-menu" uib-dropdown-menu aria-
             labelledby="measures">
                        <li><a href="#">Add new</a></li>
                    </ul></li>
                <li class="dropdown" uib-dropdown>
                    <a href="" id="forecasting" class="dropdown-toggle" uib-
           dropdown-toggle aria-haspopup="true"
                    aria-expanded="false">Forecasting <span class="caret"></span></a>
                    <ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="forecasting">
                        <li><a href="#">Create New</a></li>

                    </ul></li>
                <li><a href="#about">Report</a></li>
                <li><a href="#contact">Administration</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown"><a href="#" class="dropdown-toggle"
                    data-toggle="dropdown" data-ng-model = "Dropdown" 
              role="button" aria-haspopup="true"
                    aria-expanded="false">{{username}} <span class="caret">
              </span></a>
                    <ul class="dropdown-menu">
                        <li><a href="#">View Profile</a></li>
                        <li><a href="#">Change Password</a></li>
                        <li role="separator" class="divider"></li>
                        <li class="dropdown-header">More</li>
                        <li><a href="#!login" >login</a></li>
                        <li><a href="#!LogOut" type = "button" data-ng-
                  click= "showAlert()">LogOut</a></li>

                    </ul></li>
            </ul>
        </div>
        <!--/.nav-collapse -->
       </div>
           </nav>

最佳答案

试试这个

$scope.shownav = true;
$scope.validUser = function(){
    if($scope.username != $scope.password)
        {$scope.message = "authentication unsuccessful, Please try again!";}
    else
    {$scope.message = "authentication successful, You will now be redirected 
    in 5 seconds";
$scope.shownav = false;
    $timeout(function() {
          $location.path('/');
          }, 5000);
      }
      }

然后在 html 上

<nav class="navbar navbar-inverse navbar-fixed-top" ng-if="shownav">

关于javascript - AngularJS中登录成功后才重定向到页面并隐藏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47175169/

相关文章:

javascript - 无法从弹出窗口运行 JavaScript 行

javascript - 为什么自定义元素会破坏 WordPress 中的 TinyMCE?

javascript - 如何制作自定义 javascript 轮播的控件

python - 从html页面获取相关链接

javascript - 如何在 javascript 函数中使用 HTML 表单中的值

javascript - 如何在发布到服务器之前正确地将文件附加到 formData?

javascript - 试图多次加载 Angular

javascript - ngresource 访问属性资源时出错

html - 如何在html中加载外部flash

javascript - 了解 CSS 对于 JS 开发人员有多重要?