ui-router transitionhooks

统一控制路由跳转, 前台控制如果没有登录就跳转到登录页面, 当然也可以在后台控制, 如果没有登录就返回对应的错误码, 然后在response中直接跳转

监听$transitions.onStart事件

  1. 监听所有的state
angular.module('secu',['ui.router'])
.run(function($rootScope, $transitions, $state) {
$transitions.onStart({}, function(trans) {
var stateName = trans.to().name;
if ((stateName == 'admin.traininer' || stateName == 'admin.miss') && !localStorage.getItem('sessionid')) {
return trans.router.stateService.target('login');
}
})
});
  1. 监听指定的state
angular.module('secu',['ui.router'])
.run(function($rootScope, $transitions, $state) {
$transitions.onStart({
to: function(state) {
return (['admin.traininer', 'admin.miss']).indexOf(state.name) > -1;
}
}, function(trans) {
var stateName = trans.to().name;
if (!localStorage.getItem('sessionid')) {
// 下面的代码完成redirect
return trans.router.stateService.target('login');
// 如果直接返回false 则是放弃当前的state跳转
// return false
}
})
});

最新文章

  1. 深入探究javascript的 {} 语句块
  2. 链表C++模板实现
  3. .net core 使用DES加密字符串
  4. String new赋值、直接赋值
  5. Java中String类型的部分用法
  6. [Vue安装教程]十分钟学会vue 安装
  7. 如何完成域名和ip地址的绑定
  8. 蓝牙 - 小米手环3 NFC版BLE协议研究
  9. mybatis 多个接口参数的注解使用方式(@Param)
  10. Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明【转】
  11. HTML5-indexedDB使用常见错误总结
  12. day9 集合基础命令
  13. cocosCreator 新版本的动作函数API的应用
  14. Mysql 性能优化7【重要】sql语句的优化 慢查询
  15. android-menudrawer 和SlidingMenu 用法
  16. 如何将本地代码通过git上传到码云
  17. 减少MySQL的Sleep进程有效方法
  18. 如何上传代码到github?
  19. Yet Another Ball Problem CodeForces - 1118E (简单构造)
  20. 【BZOJ】1016: [JSOI2008]最小生成树计数

热门文章

  1. 步步为营-23-通过GridView实现增删改
  2. locust的安装与使用
  3. LINQ学习之旅(二)
  4. mybatis中的查询语句in用法的相关问题
  5. poj 2155(未完成)
  6. DevExpress学习笔记之如何获取Repository Item的值
  7. 用VScode代码调试Python
  8. ubuntu14.06 Lts开启ssh服务
  9. java 客户端调用 go grpc服务端问题总结
  10. Codeforces757E.Bash Plays With Functions(积性函数 DP)