简体   繁体   中英

Redirect to page only after login is successful in angularjs and hide menu

I want to redirect to home page after successful login. Till then I want a blank page with only login screen.

At present it is redirecting after successful login but I need a way to disable the menu bar and display only login page till login i.

I have a route provider where code is as follows:-

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

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

I am able to load login page successfully. It is redirecting to desired page after authentication is successful.

Controller code is as follows :-

     $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);
      }
      }

Home page code:

             <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>

try this

$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);
      }
      }

then on html

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

In the tag of your login.html, put 'hide-nav-bar="true" hide-back-button="true"'

<ion-view title="Login" hide-nav-bar="true" hide-back-button="true"></ion-view>

Also put this in your login controller:

$ionicSideMenuDelegate.canDragContent(false);

Don't forget to include the $ionicSideMenuDelegate in your controller.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM