Перенаправление при инициализации приложения в angularjs

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

$rootScope.$on("$routeChangeStart", function (event, next, current) {
    alert("change location");

    $location.path('/login');
});

Он основан на https://github.com/fnakstad/angular-client-side-auth/blob/master/app/js/app.js Проблема заключается в том, что при загрузке страницы срабатывает предупреждение, но местоположение не меняется. Мне нужно щелкнуть элемент навигации моего приложения, а затем будет вызвано действие входа в систему, и маршрут изменится.

.run(['$rootScope', '$location', '$cookieStore', function ($rootScope,
                                                     $location, $cookieStore) {

    $location.path('/login');

    $rootScope.$on("$routeChangeStart", function (event, next, current) {

        $location.path('/login');

    });

    $rootScope.appInitialized = true;
}]);

Это будет работать, однако кажется излишним. И почему срабатывает оповещение, а не изменение местоположения?

Почему местоположение не меняется при полной загрузке страницы? Как это исправить?

Полный код http://jsfiddle.net/qfSC3/, но скрипка не работает.


person Upvote    schedule 17.05.2013    source источник


Ответы (1)


Вместо этого попробуйте использовать событие $locationChangeStart.

$scope.$on("$locationChangeStart", function(event){
    event.preventDefault();
})

На основе этого вопроса: AngularJS - обнаружение, остановка и отмена маршрута изменения

person Mathew Berg    schedule 17.05.2013