Подтвердить что ты не робот

Почему $routeChangeSuccess никогда не вызван?

Я делаю что-то подобное ниже в моем приложении, но я просто не могу получить событие 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"

      });
  });

очень простой html, как показано ниже, также не работает

  <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>

но когда я нажимаю на ссылку, я вижу, что представления обновляются, но событие $routeChangeSucces никогда не запускается.

есть что-то, чего я не вижу?

Другой вопрос У меня было есть событие, которое я могу подключить, чтобы знать, что представление готово, поэтому я могу начать некоторую дополнительную обработку, например document.ready().

plnlr, но не полностью работает...

Отношения Киран

4b9b3361

Ответ 1

Пожалуйста, проверьте эту вики: События изменения состояния. Выдержка:

  • $stateChangeSuccess - запускается после завершения перехода состояния.

    $сфера. $На ( '$ stateChangeSuccess',
    функция (событие, toState, toParams, fromState, fromParams) {...})

Поэтому вместо $routeChangeSuccess используйте $stateChangeSuccess.

Чтобы получить более подробную информацию обо всех доступных событиях, проверьте wiki Events. Здесь вы можете найти, что подходящим для вас может быть событие $viewContentLoaded...