四、angularjs 如何在页面没有登录的情况下阻止用户通过更改url进入页面--$stateChangeStart
//监控路由转换
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {//上面的参数是固定的
if(toParams.name === 'quanCheck' && !$sessionStorage.userInfo) { //进入O2O卡券验证页面
event.preventDefault();//该方法是阻止页面进入先进行下面的判断
//验证token信息是否合法,合法则跳到卡券验证界面
Service.post('users', 'verifyToken', { sysId: systemId.o2O, token: toParams.param }).then(function(data) {
$sessionStorage.userInfo = angular.extend(data.dataInfo, { currentSystemId: systemId.o2O });
$state.go('o2O', { parent: 'verify', name: 'quanCheck', param: null });
}, function(error) {
$state.go('o2OLogin');
});
} else if(notCheckLoginStates.indexOf(toState.name) < 0 && !$sessionStorage.userInfo) { //防止用户不登录直接进入功能模块
event.preventDefault();
$state.go(localStorage.defaultLoginState || 'chooseSystem');
swal('请先' + (localStorage.defaultLoginState ? '登录!' : '选择系统!'), '', 'error');
} //删除会话储存数据
if(deleteStorageStates.indexOf(toState.name) >= 0) {
delete $sessionStorage.userInfo;
delete $sessionStorage.systemInfo;
} //删除本地预设登录数据
if(toState.name === 'chooseSystem') {
localStorage.removeItem('defaultLoginState');
}
});
四、angularjs 如何在页面没有登录的情况下阻止用户通过更改url进入页面--$stateChangeStart的更多相关文章
- 仿联想商城laravel实战---3、前端页面搭建(什么情况下需要路由接参数)
仿联想商城laravel实战---3.前端页面搭建(什么情况下需要路由接参数) 一.总结 一句话总结: 比如访问课程的时候,不同的课程(比如云知梦),比如访问不同的商品,比如访问不同的分类 //商品详 ...
- jQuery使用ajaxSubmit()提交表单(在不希望页面跳转的情况下)
原文:http://www.jb51.net/article/48728.htm ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先 ...
- javascript 在页面不刷新的情况下 其中的变量时不会被初始化的
因此可以根据这个原理做出一些效果,例如 <html> <head> <meta charset="utf-8" /> ...
- Ionic+AngularJS 开发的页面在微信公众号下显示不出来原因查究
ionic 页面 微信浏览器遇到的坑 公司的微信公众号一部分页面是用AngularJS+Ioinc开发,发现在本地浏览器测试的时候都没问题,传到服务器在微信公众号下跑就出问题来,经查是: index- ...
- mvc不登录的情况下无法跳转至其他页面--解决方法之一
在每个控制器里,加以下方法 /// <summary> /// 在调用视图之前拦截非法用户 /// </summary> /// <param name="fi ...
- php在没有登录的情况下自动跳转到登录页
<?php namespace Home\Controller; use Think\Controller; class BaseController extends Controller{ / ...
- 关于页面中css某些情况下出现不知原因的隔断解决办法
第一种方法:body{margin:0px;padding:0px position:absolute; top:0px;left:0px;} html{ width:100%; overflow-x ...
- linux在telnet情况下root登录提示login incorrect
root登录时总是提示 login incorrect SSH可以登录 别的用户也可以通过telnet登录 唯独root不可以 解决方法: vi /etc/pam.d/login # auth r ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十四║ Vuex + JWT 实现授权验证登录
壹周回顾 哈喽,又是元气满满的一个周一,又与大家见面了,周末就是团圆节了,正好咱们的前后端也要团圆了,为什么这么说呢,因为以后的开发可能就需要前后端一起了,两边也终于会师了,还有几天Vue系列就基本告 ...
随机推荐
- (转)zabbix3.4使用percona-monitoring-plugins监控mysql
原文:https://blog.csdn.net/yanggd1987/article/details/79656771 简介 之前主要使用nagios监控mysql,本文主要介绍使用percona- ...
- guava学习:guava集合类型-Bimap
学习guava让我惊喜的第二个接口就是:Bimap BiMap是一种特殊的映射其保持映射,同时确保没有重复的值是存在于该映射和一个值可以安全地用于获取键背面的倒数映射. 最近开发过程中,经常会有这种根 ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- 大数据sql引擎
Hive:把sql解析后用MapReduce跑 SparkSQL:把sql解析后用Spark跑,比hive快点 Phoenix:一个绕过了MapReduce运行在HBase上的SQL框架 Drill/ ...
- 去掉img标签周围的空白
我们在页面布局的时候,明明已经去掉了所有标签的margin和padding,img标签周围依然会有空白,解决方法有以下几种: 1.给img标签设浮动: img{ float:left; } 2.将im ...
- Gin实战:Gin+Mysql简单的Restful风格的API(二)
上一篇介绍了Gin+Mysql简单的Restful风格的API,但代码放在一个文件中,还不属于restful风格,接下来将进行进一步的封装. 目录结构 ☁ gin_restful2 tree . ├─ ...
- php中的namespace 命名空间
名字解释: namespace(命名空间),命名空间是从php5.3开始支持的功能.作用主要有两个:1.可以避免类名取得过长.2.当在多个框架配合使用时,同名的类之间不会冲突. 命名空间,看名字就知道 ...
- git pull和git pull --rebase的使用
使用下面的关系区别这两个操作: git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在来看看git ...
- js 判断浏览器是否64位
js判断是否64位 浏览器 navigator.userAgent.match(/x64/i);
- Win10系统安装vmware workstation 12后没有桥接网卡怎么办
原文 vmware workstation是一款虚拟机计算机软件,可以同时运行不同的操作系统,然而有win10系统用户在安装vmware workstation 12之后,却发现网络连接里面没有桥接网 ...