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 - ルート変更の検出、停止、およびキャンセル

于 2013-05-17T11:15:30.657 に答える