我正在尝试使用ui-router
捕获视图的第一次加载,以便在用户未登录时显示登录屏幕。
但是$stateChangeStart
没有在第一次加载时触发,但它在以下路由更改中启动。
$rootScope.$on('$stateChangeStart', function(event){
event.preventDefault();
});
如何捕获初始负载?
答案 0 :(得分:2)
.when('/yourRoute', {
templateUrl: 'partials/yourTemplate.html',
controller: 'YourCtrl',
resolve: {
load: function ($route, ServiceExample) {
return ServiceExample.start();
}
}
})
您可以使用类似的方法在加载页面之前启动方法。
这里,当您在浏览器中键入/ yourRoute时,将执行start方法。然后将显示该页面。
您可以验证用户是否已登录此方法。
答案 1 :(得分:1)
您可以使用解决方案,并可以捕获用户是否已登录。像这样:
.state('layout',{
url:'/',
abstract:true,
resolve:{
//Have your logic here to check for login cred and if there is none do a state change
}
},
templateUrl:'startPage/layout',
controller:'commonController'
})