解决ui-router路由监听$stateChangeStart、$stateChangeSuccess、$stateChangeError不执行的问题
问题解答
angular1项目导入ui-router之后,使用路由监听,代码如下
angular.module("app")
    .run(['$rootScope', function ($rootScope) {
     // 监听路由开始时触发
      $rootScope.$on('$stateChangeStart', function () {}
     // 监听路由成功时触发
      $rootScope.$on('$stateChangeSuccess', function () {}
     // 监听路由出现错误时触发
      $rootScope.$on('$stateChangeStart', function () {}
  })
}])
当切换路由的时候,原本应该会监听到路由的变化,但是实际却没有走这个路由监听器,这是为什么呢?答案如下:
这时需要在index.html导入一个stateEvents.js库文件,解决路由监听不到的问题(PS:必须在angular.module主模块下注入'ui.router.state.events')
附上ui-router官方教程地址:https://ui-router.github.io/ng1/
附上stateEvents.js官方教程地址:https://ui-router.github.io/ng1/docs/latest/modules/ng1_state_events.html#_statechangeerror
参数解读
根据stateEvents.js官方教程地址,路由监听提供的参数部分翻译
event: 该事件的基本信息
toState: 得到当前路由的信息,比如路由名称,url,视图的控制器,模板路径等
toParams: 得到当前路由的参数
fromState: 得到上一个路由的信息,比如路由名称,url,视图的控制器,模板路径等
fromParams:得到上一个路由的参数
后记
如有不对的地方,还望大家指正,共同进步
解决ui-router路由监听$stateChangeStart、$stateChangeSuccess、$stateChangeError不执行的问题的更多相关文章
- Vue路由监听
		
一.问题描述 描述:页面1showowner.vue跳转到页面2showuser.vue 需求:页面1的多个结点对应于一个页面2文件[页面2未展示] 问题:并不是页面一的一个结点对应一个页面二文件 处 ...
 - angular ui.router 路由传参数
		
angular已经用了一段时间了,最近在做路由,做一下笔记. 路由跳转的时候进行穿参 ui.router方式 <a ui-sref="edit({id:5})"> 编辑 ...
 - vue的路由带参数和取参数,watch路由监听
		
1.写在html里 <router-link :to="{path:'/goldShop/goodsInfo',query: { id:item.id }}" class=& ...
 - angularjs -- 路由监听
		
前几天,项目在做一个功能时需要在页面切换之前关闭正在执行的函数.尝试了几种方式都不行,最后想到既然angularjs是通过理由切换页面,那就在路由上面做文章吧.AngularJS在路由发生改变时,可以 ...
 - vue 路由监听
		
发现网上其实有很多种答案,但是测试之后发现很多都不行,或者写的不完整. 一.在app.vue组件内,增加监听$route,如下: watch: { $route(to, from) { console ...
 - Angularjs ui router,路由嵌套 父controller执行问题
		
解决方式来源:https://stackoverflow.com/questions/25316591/angularjs-ui-router-state-reload-child-state-onl ...
 - UI EventSystem事件监听
		
Unity5.0 EventSystem事件系统的详细说明 一.EventSystem对象的说明 当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了对象EventSys ...
 - vue路由钩子拦截器beforeEach和afterEach及页面路由变化路由监听
		
在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子 ...
 - 完美解决android软键盘监听
		
最近在做应用性能调优,发现在一个包含有输入框的Activity中,当软键盘弹出的时候,如果直接finish掉此Activity,那么在返回到上一个Activity时,界面的渲染会由于软键盘没有及时的收 ...
 
随机推荐
- Rpc框架dubbo-client(v2.6.3) 源码阅读(二)
			
接上一篇 dubbo-server 之后,再来看一下 dubbo-client 是如何工作的. dubbo提供者服务示例, 其结构是这样的!dubbo://192.168.11.6:20880/com ...
 - Python的基础语法(二)
			
0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...
 - MyBatis别名与util类技能了解
			
1.别名 在java中String类型就是String类型,但是在MyBatis中可不会识别java中的类型,在MyBatis中String类型的别名是'string',小写的String,或者也可以 ...
 - 大道至简第一章--java伪代码读后感
			
import java.大道至简.编程的精义; //愚公移山 public class 愚公移山 { public static void main(String[] args) { //惩山北之塞, ...
 - 比较empty()与 isset()d的区别
			
比较empty()与 isset()的区别 注意:empty()在PHP5.5之前只能检测变量 isset()只能检测变量 两者之间的联系:empty($var) 等价于 !isset($var)|| ...
 - 【jdbc】连接数据库从浅入深
			
一.回想 还记得以前自学的时候,刚接触到数据库,讲解的连接数据库的最基本的理论知识和方法,现在温习一下基础知识并总结如下! 1.JDBC连接数据库的基本流程 加载JDBC驱动程序 —> 提供JD ...
 - SQL三表左关联查询
			
今天在开发的时候遇到了一个需求就是三遍关联查询,表A包含有表B和表C的uid,然后使用left join左关联查询: SELECT c.`uid`, `fromuseruid`, `touseruid ...
 - IdentityServer4(1)- 特性一览
			
本地应用只本地客户端应用,例如QQ.微信 IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架.它可以在您的应用程序中提供以下功能: 它使 ...
 - 使用 Infer.NET 进行概率编程
			
本文介绍了如何使用 Infer.NET 进行概率性编程. 概率性编程是一种将自定义模型表示为计算机程序的机器学习方法. 借助它可以在模型中包含专业知识,使机器学习系统更易理解. 它还支持在线推断,即在 ...
 - leetcode — spiral-matrix-ii
			
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...