私のページには、GET リクエストと JSON バックエンドを使用する検索機能がいくつかあります。
検索を実行すると、ユーザーがブックマークできるすべてのパラメーターを含む URL がブラウザーに表示されます。
私の検索は次のとおりです。
search?key=a
URL を更新するために、このコードを検索の成功コールバックに入れました。
$location.path("/search?key=a");
しかし、その後、私の URL は次のように更新されます。
search#/search%3Fkey=a
ユーザーがこれをブックマークすると、もちろん検索は実行されず、入力フィールドが空白の検索ページが表示されます。
ユーザーが正しいリンクを持っているときに検索結果を表示するようにセットアップを既に行いました-これをコントローラーに追加しました:
if (location.search) {
$scope.callMyApi(location.search);
}
しかし、AngularJS から取得したリンクを使用しているときはsearch#/search%3Fkey=a
、$location.search()
が空です。
$location.path()
、一方、必要なものがあります:
/search?key=a
これを分割して検索文字列を取得し、それを に渡すことができcallMyApi
ます。しかし、それを行うAngularの方法が欠けているように感じます。
$locationに関するドキュメントとルーティングに関するいくつかの記事を既に読んでいますが、まだ何をしなければならないのかわかりません。