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 相关文章推荐
基于Asp.net与Javascript控制的日期控件
May 22 Javascript
JavaScript 字符串处理函数使用小结
Dec 02 Javascript
基于Jquery实现表格动态分页实现代码
Jun 21 Javascript
JavaScript对象之深度克隆介绍
Dec 08 Javascript
jQuery浏览器CSS3特写兼容实例
Jan 19 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 Javascript
JS重载实现方法分析
Dec 16 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
微信小程序中做用户登录与登录态维护的实现详解
May 17 Javascript
微信小程序wx.request实现后台数据交互功能分析
Nov 25 Javascript
Vue.js实现的计算器功能完整示例
Jul 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
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
python中doctest库实例用法
2020/12/31 Python
css sprite简单实例
2016/05/23 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
如何写早恋检讨书
2014/09/10 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
如何利用python实现列表嵌套字典取值
2022/06/10 Python
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python