routechangesuccess routechangeerror route not change angularjs angular-ui angular-ui-router

angularjs - routechangeerror - ngroute controller url



¿Por qué $ routeChangeSuccess nunca se llama? (2)

Por favor, consulte este wiki: Eventos de cambio de estado . Un extracto:

  • $ stateChangeSuccess: se activa una vez que se completa la transición de estado.

    $ scope. $ on (''$ stateChangeSuccess'',
    función (evento, toState, toParams, fromState, fromParams) {...})

Entonces, en lugar de $routeChangeSuccess use $stateChangeSuccess .

Para obtener información más detallada sobre todos los eventos disponibles, consulte los Events wiki. Aquí puede encontrar el adecuado para usted, podría ser el evento $viewContentLoaded ...

Estoy haciendo algo similar a continuación en mi aplicación, pero no puedo obtener el evento routeChangeSuccess.

var myapp = angular.module(''myapp'', ["ui.router", "ngRoute"]); myapp.controller("home.RootController", function($rootScope, $scope, $location, $route) { $scope.menus = [{ ''name'': ''Home '', ''link'': ''#/home''}, {''name'': ''services'', ''link'': ''#/services''} ] $scope.$on(''$routeChangeSuccess'', function(event, current) { alert(''route changed''); }); } ); myapp.config( function($stateProvider, $urlRouterProvider, $routeProvider) { $urlRouterProvider.otherwise("/home"); $stateProvider .state(''home'', { url: "/home", //template: ''<h1>Home Screen</h1>'' templateUrl: "/Client/Views/Home/Home.htm" }) .state(''services'', { url: "/services", //template: ''<h1>Service screen</h1>'' templateUrl: "/Client/Views/Home/service.htm" }); });

un html muy simple como abajo también falla

<body ng-controller="home.RootController"> <ul class="nav"> <li ng-repeat="menu in menus" "=""> <a href="{{menu.link}}">{{menu.name}}</a> </li> </ul> <div ui-view> No data yet!</div> </body>

pero cuando hago clic en el enlace, veo que las vistas se actualizan pero el evento $ routeChangeSucces nunca se activa.

¿Hay algo que este olvidando?

Otra pregunta que tuve fue que hay un evento al que puedo conectarme para saber que la vista está lista para que pueda comenzar un procesamiento adicional, como document.ready ().

plnlr pero no totalmente trabajando ...

Saludos Kiran


stateChange eventos stateChange ahora están en desuso y se eliminan, en su lugar use transitions .

$transitions.onSuccess({}, function () { console.log("state changed"); });