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 相关文章推荐
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
基于jquery点击自以外任意处,关闭自身的代码
Feb 10 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
JS制作图形验证码实现代码
Oct 19 Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
vue2.0 实现导航守卫(路由守卫)
May 21 Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
Vue封装的组件全局注册并引用
Jul 24 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
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
django如何自己创建一个中间件
2019/07/24 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
Python安装Bs4的多种方法
2020/11/28 Python
python爬虫 requests-html的使用
2020/11/30 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
师范大学应届生求职信
2013/11/21 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
社区工作者感言
2014/03/02 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
学习保证书范文
2014/04/30 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS