AngularJSを使用してURLクエリパラメータの値を読みたいのですが。次のURLでHTMLにアクセスしています。
http://127.0.0.1:8080/test.html?target=bob
さすがlocation.search
です"?target=bob"
。targetの値にアクセスするために、Webにリストされているさまざまな例を見つけましたが、AngularJS 1.0.0rc10では機能しません。特に、以下がすべてundefined
です。
$location.search.target
$location.search['target']
$location.search()['target']
誰が何がうまくいくか知っていますか?($location
コントローラーのパラメーターとして使用しています)
更新:
以下に解決策を掲載しましたが、完全には満足していません。開発者ガイド:Angular Services:$ locationの使用に関するドキュメントには、次のように記載されています$location
。
$ locationはいつ使用する必要がありますか?
アプリケーションが現在のURLの変更に対応する必要がある場合、またはブラウザーで現在のURLを変更する場合。
私のシナリオでは、私のページはクエリパラメーターを使用して外部Webページから開かれるため、それ自体は「現在のURLの変更に反応する」ことはありません。ですから、おそらく$location
仕事に適したツールではありません(醜い詳細については、以下の私の答えを参照してください)。したがって、この質問のタイトルを「$ locationを使用してAngularJSでクエリパラメーターを読み取る方法」から変更しました。「AngularJSでクエリパラメータを読み取る最も簡潔な方法は何ですか?」明らかに、JavaScriptと正規表現を使用して解析することができlocation.search
ますが、非常に基本的な何かのために低レベルにすると、プログラマーの感性が本当に気分を害します。
だから:$location
私の答えよりも使用するより良い方法はありますか、それとも簡潔な代替手段はありますか?
http://127.0.0.1:8080/test.html#?target=bob
動作する、#
前に注意してください?
。$location
サーバーに送信されない第2レベルのルーティングメソッドです。
$location.search()['target']
後に動作し$locationProvider.html5Mode(true)
ます。