2016-05-02 9 views
1

PHPリダイレクトを介してパラメータをui-routerに渡すことが可能かどうか疑問に思っていましたか?例えばPHPリダイレクトでui-routerにパラメータを渡すことはできますか?

、私は次のような状態があります。

// Registration 
    .state('registration', { 
     url: '/registration/:valid', 
     templateUrl: '../partials/register/registration.php', 
     controller: 'RegistrationController', 
     controllerAs: 'Registration', 
     params: { 
      valid: null 
     }, 
     authenticate: false, 
     data: { 
      authorizedRoles: [USER_ROLES.all] 
     } 
    }) 

を私はPHPを経由して、パラメータを渡すためにしようとしていますので、同様にリダイレクト:

// Return success 
header('Location: http://<...>/registration?valid=true'); /* Redirect browser */ 

しかし、それを選ぶようには見えませんアップ。

var self = this; 
self.valid = $state.params.valid; 

しかし、私はいつも「未定義」(デフォルト値)の値を取得する:私はいつも私のコントローラに続いてvalid

のデフォルト値を取得します。 これはすべて可能ですか?

変更PHP

// Return success 
header('Location: http://<...>/registration/true'); 

キャッチパラメータURL

let params = $location.search('valid'); 
if (params.valid) { 
    // do something 
} 

よろしくから:?

答えて

0

あなたが状態でurl

url: '/registration/:valid' 

をあなたのパラメータを定義しているなら、あなたはただ、その値を渡すクエリ文字列でそれを指定する必要はありません。

header('Location: http://<...>/registration/true'); 

それ以外の場合は、パラメータをurlから削除してparamsオブジェクトで定義します。

.state('registration', { 
    url: '/registration/', 
    templateUrl: '../partials/register/registration.php', 
    params: { 
     valid: null 
    }, 

そして、私はすでにあなたの最初のオプションを試してみましたが、なし、成功しなければならなかった。この

// Return success 
header('Location: http://<...>/registration?valid=true'); 
+0

ありがとうございました。実際に私のコードに2つのエラーがありました(無効なURLと、私が気づいていない実行中のセカンダリURL)。しかし、あなたの最初の例(@pablorskからも示唆されています)は、私が他の間違いを訂正した後は私のために働いていました。ありがとう。 – Riples

0

2つのオプションがあります!

+0

ようなPHPであなたのオリジナルの構文を使用します。それはちょうど '.otherwise'状態にリダイレクトされているようです。あなたの2番目のオプションでは、 '.state'内の?パラメータをどのように捕まえることができますか? – Riples

関連する問題