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 相关文章推荐
jQuery 相关控件的事件操作分解
Aug 03 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
Apr 11 Javascript
AngularJS 最常用的功能汇总
Feb 17 Javascript
EasyUI加载完Html内容样式渲染完成后显示
Jul 25 Javascript
Javascript 调用 ActionScript 的简单方法
Sep 22 Javascript
php 修改密码实现代码
May 24 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
Jun 01 Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 Javascript
微信小程序登录数据解密及状态维持实例详解
May 06 Javascript
es6 for循环中let和var区别详解
Jan 12 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
May 29 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
Javascript 布尔型分析
2008/12/22 Javascript
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
vue实现购物车的监听
2020/04/20 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
Python FTP操作类代码分享
2014/05/13 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
亲子拓展活动方案
2014/02/20 职场文书
合作协议书
2014/04/23 职场文书
学前班评语大全
2014/05/04 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
团支部推优材料
2014/05/21 职场文书
军训后的感想
2015/08/07 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript