2

在应用程序初始化时的第一页加载时,我想将用户重定向到登录页面。我认为代码的相关部分是这个

$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/但小提琴不起作用。

4

1 回答 1

3

尝试改用 $locationChangeStart 事件

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

基于这个问题:AngularJS - Detecting, Stalling, and canceling route changes

于 2013-05-17T11:15:30.657 回答