angular 未登录状态拦截路由跳转的方法


Posted in Javascript onOctober 09, 2018

使用angularjs的但页面应用时,由于是本地路由在控制页面跳转,但是有的时候我们需要判断用户是否登录来判断用户是否能进入界面。

angularjs是mvc架构所以实现起来很容易也很灵活,我们只MainController里增加一个路由事件侦听并判断,这样就可以避免未登录用户直接输入路由地址来跳转到登录界面地址了。

第一步:定义myapp

var myapp=angular.module("MainController",["ui.router",'infinite-scroll','oc.lazyLoad']);

第二步:使用config来配置路由跳转

myapp.config(
 function($stateProvider,$urlRouterProvider,$ocLazyLoadProvider,$httpProvider){
 $stateProvider
  .state('index', {//首页
   url: '/index',
   templateUrl: basePath+'page/gym/lecycle_index.html',
   resolve: {
     loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad){//这两行就是loader的使用,此行写法固定
      return $ocLazyLoad.load(basePath+'src/lecycle_index/le_index.js');//后面这个就是进入这个模板时候要加载进来的js
     }]
    }
  })
  .state('userAgree',{//同意用户协议页面
   url:"/userAgree",
   templateUrl:basePath+'page/agreement.html'
  })
  .......
 $urlRouterProvider.otherwise("/index");/*BproDtails*/
});

第三步:使用run来进行登录验证拦截

myapp.run(function ($rootScope,$state) {
 $rootScope.$on('$stateChangeStart',function(event){
  // if(toState.name=='login')return;// 如果是进入登录界面则允许
  // 如果用户不存在
  if(ifLoginTrue==false){
   console.log("没有登录")
   event.preventDefault();// 取消默认跳转行为
   $("#my-modal-loading").modal('open');//开启加载中loading

   // $state.go("login",{from:fromState.name,w:'notLogin'});//跳转到登录界面
  }
 });
});

以上这篇angular 未登录状态拦截路由跳转的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
JQuery做的一个简单的点灯游戏分享
Jul 16 Javascript
8个超实用的jQuery功能代码分享
Jan 08 Javascript
JQuery给网页更换皮肤的方法
May 30 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
Jun 19 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 Javascript
js 毫秒转天时分秒的实例
Nov 17 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
如何在JS文件中获取Vue组件
Sep 16 Javascript
在js中修改html body的样式
Nov 11 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 #Javascript
angularJS1 url中携带参数的获取方法
Oct 09 #Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 #Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 #Javascript
angularJS自定义directive之带参方法传递详解
Oct 09 #Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 #Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 #Javascript
You might like
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
PHP页面中文乱码分析
2013/10/29 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
Firefox window.close()的使用注意事项
2009/04/11 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
python 使用get_argument获取url query参数
2017/04/28 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
使用python模拟命令行终端的示例
2019/08/13 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
策划主管的工作职责
2013/11/24 职场文书
大学生最常用的自我评价
2013/12/07 职场文书
进步之星获奖感言
2014/02/22 职场文书
工程售后服务承诺书
2014/05/21 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers