example - AngularJS-El evento UI Router stateChangeSuccess no se dispara
eventos de teclado angular (3)
Estoy usando UI Router en mi aplicación angular. Estoy tratando de integrar eventos de state change
, pero no están activando el cambio de estado. Todo lo demás está funcionando bien y no hay error en la consola. Me encontré con preguntas similares, pero ninguna de las soluciones funcionó para mí:
angular + ui-router: $ stateChangeSuccess activado en estado b pero no en ab
El siguiente es mi código Angular:
(function() {
angular.module("bootdemo", [
"ngResource",
"ui.router",
"bootdemo.core",
"bootdemo.index"
])
.run(function ($rootScope, $location, $state, $stateParams) {
$rootScope.$on(''$stateChangeSuccess'', function(event, toState, toParams, fromState, fromParams){
alert("root change success");
})
$rootScope.$on(''$stateChangeStart'', function(event, toState, toParams, fromState, fromParams, options){
alert("root change start");
})
$rootScope.$on(''$stateChangeError'', function(event, toState, toParams, fromState, fromParams, error){
alert("root change error");
})
})
.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise(''/'');
$stateProvider
.state(''index'', {
url: "/",
templateUrl: ''/index/templates/welcome.html'',
controller: ''IndexController as vm''
})
.state(''login'', {
url: "/login",
templateUrl: ''/index/templates/login.html'',
controller: ''LoginController as ctrl''
})
.state(''home'', {
url: "/home",
templateUrl: ''/index/templates/home.html'',
controller: ''HomeController as ctrl''
})
});
}());
Se fue sin ninguna pista. No estoy seguro de lo que me estoy perdiendo.
Los eventos de StateChange han quedado en desuso para ui.router >= 1.0
Para el nuevo ui.router
StateChangeSuccess
$transitions.onSuccess({}, function() {
console.log("statechange success");
});
StateChangeStart
$transitions.onStart({}, function(trans) {
console.log("statechange start");
});
Consulte esta guía de migración para más información.
Si está utilizando el nuevo ui-router (v1.0.0), los eventos $stateChange*
no funcionarán. Debes usar $transitions.on*
hooks de ahora en adelante.
Puedes leer aquí.
https://ui-router.github.io/docs/latest/modules/ng1_state_events.html
Los eventos $ state están en desuso para la versión angular> 1.0.0. ahora en adelante para el evento de cambio tenemos que usar $ transiciones
refiera $transitions desde aquí