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 相关文章推荐
javascript函数库-集合框架
Apr 27 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
Apr 24 Javascript
jquery操作select详解(取值,设置选中)
Feb 07 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
javaScript+turn.js实现图书翻页效果实例代码
Feb 16 Javascript
echart简介_动力节点Java学院整理
Aug 11 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
Dec 29 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
May 09 Javascript
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
May 10 Javascript
微信小程序 WeUI扩展组件库的入门教程
Apr 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
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
python树莓派红外反射传感器
2019/01/21 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
HTML5的革新 结构之美
2011/06/20 HTML / CSS
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
门卫工作岗位职责
2013/12/17 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
爱心捐助倡议书
2014/05/19 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript