I am using Bable for ES6 and webpack. I am on angular 1.x.x and building an application. Till now I did not hit any problem. I want to have a functionality where I can track all the Route Changes. I am using UI-Router. The problem is that $stateChangeStart
is not getting triggered anyways. The code is mentioned below.
/*All includes are taken care of. Please look at the run method*/
angular.module('chpApp', [
uirouter,
angular_animate,
uibootstrap,
formly,
formlyBootstrap,
ngMessages,
angularLoadingBar,
'ngNotificationsBar',
'jkuri.datepicker',
'LocalStorageModule',
'ncy-angular-breadcrumb',
'mgo-angular-wizard',
'luegg.directives',
'ngToast',
'ui.mask',
/*Application Modules*/
angularnvd3,
chpConstants,
menu,
header,
breadcrumb,
auth,
dashboard,
programs,
device
])
.run(['$rootScope', function($rootScope) {
$rootScope.$on('$stateChangeStart', () => {
console.log('lol')
})
}])
.config(routing);
Please let me know what I ma doing wrong because the state is getting changed but the $stateChangeStart
event never gets triggered. The run
method is the place where I am hooking up with the $stateChangeStart
listener.
I guess its something to do with ES6 and I am not able to find any reference. Thanks.
I had a similar problem and eventually realised that the stateChange*
events have been deprecated and disabled by default in ui-router
1.0. I'm using 1.0.0-alpha0
.
The functionality provided by these events can now be achieved using transition hooks. This is covered in the release notes for the 1.0 alpha and can be read here: https://github.com/angular-ui/ui-router/releases/tag/1.0.0alpha0
Expanding on Eoins answer, you can use the hooks on $transitions in a component controller as below
$transitions.onStart({}, ()=>{
$log.log('In start')
});
$transitions.onFinish({}, ()=>{
$log.log('In finish')
});
https://github.com/angular-ui/ui-router/releases/tag/1.0.0alpha0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With