Angular 监听路由变化事件


摘要: $stateChangeStart- 当模板开始解析之前触发 $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ ... })

app.run(['$rootScope', '$location' ,'$cookieStore', '$state', 'CacheManager',  function($rootScope, $location, $cookieStore, $state,CacheManager){
//监听路由事件

        $rootScope.$on('$stateChangeStart',

            function(event, toState, toParams, fromState, fromParams){

                if(toState.name=="tabs.post"&&fromState.name=="tabs.orderList"){

                     //$location.path();//获取路由地址

                    $location.path('/tabs/home');//设置路由地址

                }

        })

}]);

ps:

使用event.preventDefault()可以阻止模板解析的发生

 $rootScope.$on('$stateChangeStart',

            function(event, toState, toParams, fromState, fromParams){

                event.preventDefault();

        })

 

$stateChangeSuccess- 当模板解析完成后触发

$stateChangeError- 当模板解析过程中发生错误时触发

$viewContentLoading- 当视图开始加载,DOM渲染完成之前触发,该事件将在$scope链上广播此事件

$viewContentLoaded- 当视图加载完成,DOM渲染完成之后触发,视图所在的$scope发出该事件。

  

参考原文:https://my.oschina.net/jack088/blog/479466

 

  

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM