8

それで。私はAngularJSをいじり回していて(これは私が作業するたびに私を驚かせ続けます)、$routeProviderと$routeParamsを使用するときに、現在のurl / location /deep-linkを強制する方法はありますか?ページ上で特定のモデルが変更されたときに自動的に更新するブラウザのロケーションバー?

これが私がいじっているアプリです。 それはangularのサイトのチュートリアルからのアプリですが、私はそれを台無しにして、ページネーションのようないくつかの機能を追加しました。お気づきの場合は、このリンクにアクセスすると、にリダイレクトされ#/phones//age/5/0ます。最初のセグメントはコントローラーであり、最後の4つはフィルター、テキストクエリ、並べ替える「列」、ページあたりのアイテム数、ページ番号をそれぞれ説明しています。

このためのコントローラーは$routeParamsを介してこれらを取り込み、通常のようにモデル/ビューを更新しますが、ユーザーがモデル/ビューを変更したときにURLを自動的に変更するにはどうすればよいですか?したがって、xoom最初にアクセスしたときにページのクエリボックスに入力すると、http://brandonep.org/angular-test-phonecat/#/phones/xoom/age/5/0入力するとすぐにロケーションバーのURLがに変わります。

前もって感謝します!不明な点がある場合は申し訳ありませんが、最善を尽くしました:P

4

1 に答える 1

4

URL(/?a=1&b=2)のパラメーターを使用してから、コントローラーに挿入$routeParamsして、コントローラーの負荷に関するパラメーターを解釈します。

次に、を使用$watchしてモデルを監視し、モデルが変更されるたびにセットを監視できますwindow.location.url。次に例を示します:http://jsfiddle.net/andytjoslin/eYJmR/

于 2012-07-09T01:31:06.543 に答える