這是我的主要js文件,我想要一個條件,即用戶必須登錄才能訪問歡迎頁面,如果用戶沒有登錄,那麼默認情況下它必須將其重定向到登錄頁面,但在我的代碼中,表單是提交併重定向到歡迎頁面,但沒有實現期望的結果。如果用戶未登錄,如何阻止用戶訪問下一頁?
這裏的main.js文件
var app = angular.module("myApp", ["ngRoute"])
.config(function($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('');
$routeProvider
.when("/",{
templateUrl : "pages/login.html",
controller : "loginController"
})
.when("/welcome",{
templateUrl: "pages/welcome.html",
controller:"welcomeController"
})
})
.controller("loginController", function($scope, $location, $rootScope){
$scope.login = function() {
var user = $scope.username;
var password = $scope.password;
/*var result = $scope.username + $scope.password;
console.log(result);*/
if (user == "admin" && password == 'admin'){
$rootScope.loggedIn = true;
$location.path('/welcome');
} else {
alert("INVALID CREDENTIALS");
}
}
})
.controller('welcomeController', function($scope){
$scope.message = "welcome here";
})
.controller('logoutController', function($scope,$location){
$scope.logOut = function(){
$location.path('/');
}
這裏是我的welcome.html
<span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestias officia praesentium dolore alias, enim nostrum doloribus natus nisi itaque quos ullam. Tenetur aut fugit qui minus, cupiditate, rem est unde.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit facilis excepturi laboriosam voluptates in doloremque ad, impedit. Nam sunt similique vitae voluptatem fugit molestias, quod accusantium alias nulla dolores ad.</span>
<div class="logout">
<h4><span style="float: right; color:red; cursor: pointer;" ng-click="logOut()">Logout?</span></h4>
</div>
和login.html的這裏
Enter user name: <input type="text" name="user" ng-model="username"><br>
Enter Password: <input type="password" name="password" ng-model="password"><br>
<input type="submit" name="submit" value="submit" ng-click="login()">
謝謝你的工作:) –
但是這種方法有一個問題,當我註銷時,它會將我重定向到login.html頁面,沒關係,但是如果我改變了這個URL - > http: // localhost/login /#/歡迎再次將我帶到歡迎頁面,這是不正確的,如果在註銷後到達登錄頁面時刷新頁面,那麼它不會返回welcome.html,僅當我刷新頁面時!我希望你有我的查詢! –
僅當您登錄頁面加載時創建'$ rooteScope.loggedIn',它可能沒有此變量直接訪問歡迎頁面,這可能是此錯誤的原因。使用'console.log($ rooteScope.loggedIn)'來查看這個變量有哪些值,然後檢查這個也是重定向的。 –