1

ブロードキャストでルーティングを実行します。ルーティングで$ rootScope。$のパラメーターをコントローラーに渡す必要があります。

$rootScope.$on('unauthorized_access', function (event, args) { 
    $location.path('/login:' + args.msg); 
}); 

これで動作します。

$routeProvider 
.when('/', { 
    templateUrl: 'mainApp/landingPage/login.html' 
}) 
.when('/login::msg', { 
    templateUrl: function(params) { 
     if (params) { 
      // The params can be printed in console from here... 
      console.log(params); 
     } 
     return 'mainApp/landingPage/login.html'; 
    }, 
    controller: 'loginController' 
}) 
.otherwise({ 
    redirectTo: '/' 
}); 

これまでのところ、これは問題ありません。しかし、私はloginControllerにパラメータを渡す必要があります。私は試しました

.when('/login::msg', { 
    templateUrl: function(params) { 
     if (params) { 
      console.log(params); 
     } 
     return 'mainApp/landingPage/login.html'; 
    }, 
    controller: 'loginController', 
    pageParams : params 
}) 

しかし、私は間違っていると思います。私を助けてください。どんな助けもありがたいです。ありがとうございました。

編集:シナリオを追加します。私は一定の時間の後に 'トークン'が無効になり、ユーザーがログイン画面にリダイレクトされたときに、loginControllerにメッセージ文字列を渡す必要があります。今、ユーザが最初に到着したときに、表示されるべきメッセージはない。次に、あなたのコントローラでは、あなたは以下のようなデータを取得することができます

$routeProvider 
    .when("/news", { 
     templateUrl: "newsView.html", 
     controller: "newsController", 
     resolve: { 
      message: function(messageService){ 
       return messageService.getMessage(); 
     } 
    } 
}); 

: が故に、これは私が

$rootScope.$broadcast('unauthorized_access', param); 
+0

httpインターセプタでセッションの一貫性を監視する方がよいでしょう。 401エラーが発生した場合、セッションを終了してログインページにリダイレクトできます – Foker

+0

はい、それは私がやっていることです。しかし、私もメッセージを渡す必要があります。だから私はそのメッセージ(リダイレクトの原因となったもの)をブロードキャストに入れました。これは401エラーでリダイレクトするサービスです。 service.responseError = function(resp){ var param = {}; if(resp.error == 401){ param.msg = "Token Expired"; } $ rootScope。$ブロードキャスト( 'unauthorized_access'、param); return resp; }; –

+1

解決してください:) – Foker

答えて

1

使用決意をブロードキャストするメッセージを渡す方法です

app.controller("newsController", function (message) { 
    $scope.message = message; 
}); 

詳細これについて:

http://odetocode.com/blogs/scott/archive/2014/05/20/using-resolve-in-angularjs-routes.aspx

+1

ありがとうございますThalaivar、それはまさに私が探していたものです。私もRajaniのファン。迅速な答えのためにKabali .. thnksを待っている。私はあなたのものを受け入れたものとしてマークします。 –

+0

@JayarajPS:thalaのファンに会うのは素晴らしい... – Thalaivar

関連する問題