2017-04-21 2 views
3

ルート定義:anglejs ui-routerコントローラは、Javaバックエンドリダイレクトのパラメータをどのように読み取ることができますか?次のように

.state('about', { 
      url: '/about', 
      controller: 'AboutCtrl', 
      templateUrl: 'views/about/about.html' 
     }) 

のJavaバックエンド:

servletResponse.setHeader("type", "something"); 
servletResponse.sendRedirect("http://xxxxx/yyyy/#!/about"); 

それでは、どのように私はAboutCtrlの "タイプ" のパラメータを得ることができますか?

答えて

1

servletResponseの使用方法はよくわかりませんが、setHeaderメソッドの名前から、パラメータ値ではなくヘッダー値を設定しようとしています。

ui-routerでパラメータを解決するにはいくつかの方法があります(私はあなたがui-routerを使用していると仮定しています)。あなたはそれについての詳細は、このlinkを確認することができますが、ここではいくつかの方法があります。

あなたがservletResponse.sendRedirect("http://xxxxx/yyyy/#!/about/something");で行くことに決めた場合、あなたはこのような何か行うことができます:あなたはクエリパラメータを使用したい場合は

.state('about', { 
    url: '/about/:type', //or even url: '/about/{type}' 
    controller: 'AboutCtrl', 
    templateUrl: 'views/about/about.html' 
}); 

function AboutCtrl($stateParams){ 
    console.log($stateParams.type); //something 
} 

servletResponse.sendRedirect("http://xxxxx/yyyy/#!/about?type=something");の場合は、州のURLとurl: '/about?type'を一致させる必要があります。あなたの状態のurlでそれらを定義せずにパラメータを使用したい場合は

は、あなたがこのような何かを行うことができます。

.state('about', { 
    url: '/about/', 
    params: { 
     type: null 
    }, 
    controller: 'AboutCtrl', 
    templateUrl: 'views/about/about.html' 
}); 

function AboutCtrl($stateParams){ 
    console.log($stateParams.type); //something 
} 

あなたが提供リンクで詳細とバリエーションを見つけることができます。

+0

私のために働いた後: 'servletResponse.sendRedirect( "のhttp:// xxxxxは/ YYYY /#/について/何か!");' servletResponse.sendRedirect(「HTTPのに対し、$ stateProvider ため ' と対応するコード: ?xxxxx/yyyy /#!/ about?type = something "); は私にtype = nullを渡し、渡された値を設定しませんでした。 – OutOfMind

+1

私の間違いは、その特定のケースは 'url:/ about?type''と一致させるべきです。私はすぐにこれを編集します。 – eminlala

関連する問題