我想只在登录成功时打开页面, 我在控制器中使用了标志,我想在app.js中显示。
headerCtrl.js:
$scope.verifyOTP = function(mobileNumber,otpNumber) {
$rootScope.UserAuthorised=false;
$http.get($scope.url,config).success(function(data, status) {
$rootScope.UserAuthorised=true;
$window.alert("Login Successfully!! ");
var Mypath = '/home' ;
$location.path(Mypath);
$location.replace();
})
}
App.js:
if($rootScope.UserAuthorised==true){
adminApp.config(function($routeProvider) {
$routeProvider
.when('/home', {
templateUrl : 'pages/credentials/registration.html',
controller : ''
})
})
}
如何将我的变量从控制器定义到app.js中,以便我可以将我的标志从true更改为false,反之亦然。 任何帮助表示赞赏。 感谢
答案 0 :(得分:0)
headerCtrl.js
$scope.UserAuthorised=true; //remove this line and replace with following line
localStorage.setItem("UserAuthorised", "true");
App.js
$routeProvider.when('/secure', {templateUrl: '/secure.html', controller: 'Secure',resolve:{loggedIn:onlyLoggedIn}});
var onlyLoggedIn = function ($location,$q) {
var deferred = $q.defer();
var isLogin = localStorage.getItem("UserAuthorised");
if (isLogin == 'true') {
deferred.resolve();
} else {
deferred.reject();
$location.url('/login');
}
return deferred.promise;
};
答案 1 :(得分:0)
HeaderCtrl.js
$rootScope.UserAuthorised=true;
App.js
adminApp.config(function($routeProvider) {
$routeProvider
.when('/home', {
templateUrl : function($rootScope){
if ($rootScope.UserAuthorised){
return 'pages/credentials/registration.html';
}
else return '/login.html';
}
controller : ''
})
})
答案 2 :(得分:0)
有很多方法可以做到这一点,你可以使用$ window.sessionStorage,$ rootScope,如上所述,如果可能的话,在你更改状态/位置之前使用Service来处理控制器。