テーブルの行にボタンが1つずつある角度アプリを実行しています。ボタンがオンになっている行のために開かれています。ui-router:target = "_ blank"の新しいタブで開いた状態で、パラメータが失われました
この方法で作成した新しいタブにパラメータを渡す必要がありました。
.state('viewlisting', {
url: "/listings/:id",
params: {
'action': '',
},
controller: 'ListingsController',
templateUrl: "partials/listings/view_listing.html"
});
を、ボタンは次のようなものがあります:私は状態の初期化でパラメータを宣言したのparamsはすべてが期待どおりに動作しますが、渡され
ui-sref='viewlisting({id:"+data+", action:"images"})'
を。
//URL: /#/listings/42
$state.params.action //returns "images"
$state.params.id //returns "42"
しかし<a>
タグにtarget="_blank"
を追加すると、$ state.paramsは以下を返すために、オブジェクト原因:
//URL: /#/listings/42
$state.params.action //returns ""
$state.params.id //returns "42"
私は時間のために検索した、私はUI-ルータのマニュアルを見てきました私の状況に対処するもののための問題トラッカーが、私は何も見つけ出していません。
target='_blank'
にui-sref
の状態パラメータが渡されませんか?
答えは明らかになったはずです(私の答えの後を意味します) - それは不可能です。 URLは外部世界と話す唯一の方法です。それは新しいタブ、新しいウィンドウ、またはメールを介して送信される単なるリンクです。必要なすべてのパラメータをURLに埋め込む必要があります。今は明らかですか? –
あなたはこれを明確にしました。アドレスバーに書かれたURLを '/ listing/42?action = images'の後に' listing/42'に変更する方法を尋ねました。私があなたの答えを拒否しているかのようにではなく、単にパラメータをユーザに公開したくないので、ページが読み込まれた後にURLを変更できると思っていました。 –