2016-02-29 6 views
9

私はplunkerを使用してurl-queryパラメータを使って何かを実証しようとしていますが、私はパラメータを表示することさえできません。 url: '/root?firstParam' 私はその後、したいことは、私はそのqueryParameterため、ブラウザのURLに書くものは何でもして$stateParams.firstParamを移入することです:

私は、URLプロパティは、このように見える状態は、単純なplunkerを作成しました。 PlunkerplunkerWithParameter?firstParam=foo

私は$stateParams.firstParamが最初のURLのために未定義が、2番目は「FOO」に設定されることを想像。しかし、どちらの場合も未定義です。

$stateParams.firstParamを設定するにはどうすればよいですか?

答えて

7

編集:実際には可能です(@Rogerio Soaresの答えはこれを証明しています)。コードに他のエラーがあったので私の答えをここに保持する。

iFrameで実行されているため、Plnkrアプリのブラウザの検索バーからパラメータを取得する方法はありません。私は以下のあなたの別の問題を修正:私はこのようなあなたのotherwiseステートメントにパラメータを追加

問題は、他のルートが見つからなかったときに、ルートにリダイレクトされ、あなたがしなかったことである
$urlRouterProvider.otherwise('/root?firstParam=test'); 

ルートへのパラメータを指定します。

更新PlunkR:https://plnkr.co/edit/OxEGVkhzBO332ym3q8fV?p=preview

+0

くそーその答えを入力していただけです.Dは50人、pは17日、あなたは数分で私を倒しました! –

+1

私が欲しいものに向かって少なくとも一歩。しかし、ブラウザのアドレスバーに実際にパラメータを設定する方法はありますか? – Gustav

+1

Plunkrの例では、アドレスバーのルートとして私が知っているものはplunkrのウェブサイトルートにマップしています。しかし、実際のアプリケーションでは、別のWebサイトの中にラップされていないので動作します。 – henrikmerlander

0

問題がplnkrはのiframe内に実行されていることですので、あなたがしようとしたURLは、単に間違っています。私はこのような「うん」に設定された第1パラメータを使用して、ルート状態へのリンクを追加した https://plnkr.co/edit/jV2pdV6q8g8QZ132Qu3A

このURLになり
<a ui-sref="root({firstParam: 'YEAH'})">Go to Root with Firstparam = "YEAH"</a> 

https://run.plnkr.co/roo/root?firstParam=YEAH

この1試してみてください。

間違っあなたがブラウザで直接このURLを開くと、クエリ-paramsを正しくAngularJSのアプリケーションに渡され、$stateParams.firstParam

正しいに設定されている:私はへの道を見つけませんでしたコードがiframeに埋め込まれていないplnkrへの恒久的なURLがあります。

3

私の2セント:@Johannes FernerはPlunkerはインラインフレームを使用した、しかし、あなたは、少なくともそれは少しハックですが、それは動作しdocument.referrer であなたのURLを取得することができたよう:D

$scope.parameters = []; 
    var url = document.referrer; 
    var props = url.split("?")[1] 
    .split("&") 
    .map(function(o){ 
    return o.split("="); 
    }); 
    console.log(props); 
    for(var i = 0; i < props.length; i++){ 
    var prop = props[i]; 
    console.log(prop); 
    if($stateParams.hasOwnProperty(prop[0])){ 
     $scope.parameters.push({name: prop[0], value:prop[1]}); 
    } 
    } 

https://plnkr.co/edit/Cejgj1cLJnwQT2LzjsRm?firstParam=foo&p=preview

+0

それは確かにちょっとハッキーでした!一つの方法では、それは仕事を終わらせますが、私はそれが角度生活の中で働くことを期待していました。答えとコメントから、私はその質問に対する答えはノーだと思う。しかし、あなたは実際にパラメータから値を取得するためのupvoteを取得します。 – Gustav

関連する問題