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 相关文章推荐
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
JavaScript输入邮箱自动提示实例代码
Jan 13 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
Feb 24 Javascript
原生js仿jquery animate动画效果
Jul 13 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
Nov 30 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
微信小程序左右滑动的实现代码
Dec 15 Javascript
vue监听键盘事件的快捷方法【推荐】
Jul 11 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 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制作静态网站的模板框架
2006/10/09 PHP
php数据库抽象层 PDO
2011/05/07 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
utf8的编码算法 转载
2006/12/27 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
原生js生成图片验证码
2020/10/11 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
判断单链表中是否存在环
2012/07/16 面试题
毕业设计计划书
2014/01/09 职场文书
初中校园广播稿
2014/02/02 职场文书
《狼》教学反思
2014/03/02 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
实习计划书范文
2015/01/16 职场文书
绵山导游词
2015/02/05 职场文书
环卫处个人工作总结
2015/03/04 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
政工师工作总结2015
2015/05/26 职场文书
文艺演出主持词
2015/07/01 职场文书