2013-08-16 1 views
2

У меня есть довольно простой Угловой проект, который маршруты на несколько различную URL-адреса в JavaScript:Пользовательского состояние вход и состояние выход код с маршрутизацией

function RootController($scope) {}; 

function PageOneController($scope) {}; 

angular.module('mymodule', []).config(
    ['$routeProvider', function($routeProvider) { 
     $routeProvider.when('/', { 
      templateUrl: "templates/root.html", 
      controller: RootController 
     }).when('/page1/', { 
      templateUrl: "templates/page1.html", 
      controller: PageOneController 
     }).otherwise({redirectTo: '/'}); 
    }] 
); 

Все прекрасно работает до сих пор, но я нужен способ запуска какой-либо функции JavaScript при вводе и выходе этих маршрутов. т.е.:

$routeProvider.when('/', { 
    templateUrl: "templates/root.html", 
    controller: RootController, 
    onenter: function() { console.log("Enter!"); }, 
    onexit: function() { console.log("Exit!"); } 
}); 

Есть ли способ сделать это в Угловом? При входе в состояние/маршрут мне нужно связать прослушиватели событий, и при выходе мне нужно их уничтожить и снести.

ответ

5

$route service имеет два события $routeChangeStart и $routeChangeSuccess, они могут вам помочь.

Вы можете использовать $routeChangeStart перед выходом и $routeChangeSuccess при входе.

Вы можете сделать $scope.$on на любом контроллере, чтобы следить за этими событиями.

Смежные вопросы