Javascript 在呈现页面之前执行函数
我正在使用angular.js,我正在尝试检查服务器端是否创建了会话,如果没有,我想重定向到登录页面 问题是重定向发生在页面加载后几秒钟,但我想在页面加载前执行函数 如何实现这一目标,有什么建议吗 这是我的控制器:Javascript 在呈现页面之前执行函数,javascript,angularjs,Javascript,Angularjs,我正在使用angular.js,我正在尝试检查服务器端是否创建了会话,如果没有,我想重定向到登录页面 问题是重定向发生在页面加载后几秒钟,但我想在页面加载前执行函数 如何实现这一目标,有什么建议吗 这是我的控制器: myPanel.controller('globalController', function($scope, $http){ $http.get('../classes/login.php').then(function(response){ $
myPanel.controller('globalController', function($scope, $http){
$http.get('../classes/login.php').then(function(response){
$scope.isSession = response.data;
if($scope.isSession.isStarted === false){
window.location = 'http://localhost/PDP/admin';
}
});
});
使用配置控制器前执行的
run
功能:
app.run(run)
function run($http) {
$http.get('../classes/login.php').then(function(response){
var isSession = response.data;
if(isSession.isStarted === false){
window.location = 'http://localhost/PDP/admin';
}
});
}
但是,这将只运行一次。现在,如果您使用的是ui路由器
,我们可以使用$stateChangeStart
事件在状态发生以下变化时运行此函数:
//runs everytime when state changes
function run($rootScope, $http, $state) {
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
//http get function here
})
}
另一个用例是您希望此函数仅在特定状态下运行。在这种情况下,请使用resolve
(仅当您使用的是ui路由器时,请再次使用):
使用配置控制器前执行的
run
功能:
app.run(run)
function run($http) {
$http.get('../classes/login.php').then(function(response){
var isSession = response.data;
if(isSession.isStarted === false){
window.location = 'http://localhost/PDP/admin';
}
});
}
但是,这将只运行一次。现在,如果您使用的是ui路由器
,我们可以使用$stateChangeStart
事件在状态发生以下变化时运行此函数:
//runs everytime when state changes
function run($rootScope, $http, $state) {
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
//http get function here
})
}
另一个用例是您希望此函数仅在特定状态下运行。在这种情况下,请使用resolve
(仅当您使用的是ui路由器时,请再次使用):
您正在使用ui路由器吗?用户
解析
您正在使用ui路由器吗?用户解析