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 相关文章推荐
父窗口获取弹出子窗口文本框的值
Jun 27 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
jQuery学习笔记之toArray()
Jun 09 Javascript
全面解析Bootstrap表单样式的使用
Sep 09 Javascript
JS实现的系统调色板完整实例
Dec 21 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
浅谈React的最大亮点之虚拟DOM
May 29 Javascript
vue下载excel的实现代码后台用post方法
May 10 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 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
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
node.js中的require使用详解
2014/12/15 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
three.js 入门案例详解
2018/01/23 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
JS实现简单打字测试
2020/06/24 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
Python编写Windows Service服务程序
2018/01/04 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
allbeauty美国:英国在线美容店
2019/03/11 全球购物
护士实习自我鉴定
2013/10/22 职场文书
竟聘演讲稿范文
2013/12/31 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
总裁办公室主任职责
2014/01/02 职场文书
自荐信的基本格式
2014/02/22 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
python通过新建环境安装tfx的问题
2022/05/20 Python