2015-07-31 3 views
1

Я пытаюсь реализовать безопасности на основе маршрута для пользователей и stateChangeStart не срабатывает, это мой код:

app.run(['$rootScope', '$location', function($rootScope, $location) { 
    $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){ 
     console.log('$stateChangeStart to '+toState.to+'- fired when the transition begins. toState,toParams : \n',toState, toParams); 
    }); 

}]); 

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

Что я здесь делаю неправильно? Как я могу отладить это, я не очень опыт людей в угловом

Update

Я предполагаю, что я использую ngRoute и не ui-router

Есть ли что-то эквивалент ngRoute, что я получаю изменение состояния в корневой области. Переход к Ui-маршрутизатор, кажется, большие изменения, чтобы сделать в этой точке для этой цели

+1

Чтобы быть понятным, используете ли вы ui-router или ngRoute? – charlietfl

+0

@charlietfl yeah Я использую 'ngRoute' d'oh, есть ли что-то эквивалентное этому для' ngRoute' –

+0

да, '$ routeChange ...' ... но это можно легко найти в документах также – charlietfl

ответ

0

Да у вас есть дифферент события от поставщика $ маршрута: $ routeChangeStart, $ routeChangeSuccess, $ routeChangeError

$rootScope.$on('$routeChangeStart', function(event, next, current) { 
    // TODO 
}); 

Док: https://docs.angularjs.org/api/ngRoute/service/ $ route

+0

руководство было просто для того, чтобы это было превращено в ответ из комментариев ... по крайней мере, сделать его полным ответом с правильными предложениями – charlietfl

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