-
[成都|荣耀师兄]PM-陈丹婷0编辑于2018-06-06
-
[深圳|结业弟子]JS-陈皓宇0
很多思路,不太建议用sessionStorage来存储实现。
它也可以,但是一般用来做页面数据的交互。
建议改成cookies来存用户有关的字段,不过要注意,1.4版本之前和之后,$cookies这个服务的写法会不一样($cookies的用法很简答,就不写了);
然后ng1监听路由的实现例子如下:
$transitions.onSuccess({}, function () {
if (!$state.includes('home.searchHead.positionSearch')) {
sessionStorage.removeItem('jobOptions')
}
if (!$state.includes('home.recommend')) {
sessionStorage.removeItem('recommend')
}
if (!$state.includes('home.newest')) {
sessionStorage.removeItem('newest')
}
if (!$state.includes('home.companyDetail')) {
sessionStorage.removeItem('storeOptions');
sessionStorage.removeItem('status')
}
});$transition是ng1中ui-router1.0版本以上的一个服务,1.0以下的用$routeStartChange, $routeChangeSuccess,配合$on监听。
$rootScope.$on('$stateChangeSuccess', function () {
if (!$cookies.get('loginStatus') && $location.path() !== "/login") {
$state.go("login");
}
else if ($cookies.get('loginStatus') && $location.path() === "/login") {
$state.go("home");
}
});编辑于2018-09-14 -
[武汉|结业弟子]JS-刘平0
可以在登陆成功后使用sessionStorage保存一下账户名,然后在每个新页面获取这个属性,通过判断这个属性是否存在,不存在就强制跳转到登陆页面,当然,不要在每个页面判断,这样太麻烦了,使用路由守卫就好了
编辑于2019-11-11
- 去第 页