2013-07-25 5 views
5

結果ページ」に戻るユーザーの場合「私が最後に使用したフィルタを見たい。そこで、私はngCookiesを使って、ページ上で最後に使用された検索パラメータを更新しています。私は「バック」をクリックした場合しかし、私は私が期待する最後のページにもたらされることはありません

controller('Results', ['$location','$cookies',function($location,$cookies){ 
    $location.search(angular.fromJson($cookies.search)); 
}]); 

//will yield: /results?param1=dude&param2=bro 

これは、別の状態が履歴にプッシュされたが、ユーザーが認識できなかったためです。

ユーザが/resultsに着いたが、コントローラが直ちに/results?param1=dude&param2=broを状態履歴にプッシュした。

状態「back」は、ユーザーが最終ページを期待していると思われる状態に戻すように、どのようにして状態を上書きまたは削除しますか?あなたの$ location.searchコールの最後に

+0

$ location.replace()を使用できますか? ?私はhttp://docs.angularjs.org/guide/dev_guide.services.$locationを見ています – Will

答えて

10

チェーンreplace()

controller('Results', ['$location','$cookies',function($location,$cookies){ 
    $location.search(angular.fromJson($cookies.search)).replace(); 
}]); 

これは交換する最後の履歴エントリの原因ではなく、新しいものが追加されました。

あなたがたときに、検索のparamsの変更(あなたが/resultsに行く[戻る]ボタンをしたい場合)ルートをリロード防ぐためfalseに設定することができますreloadOnSearchオプションもあります。

+0

+1これは私が探していたものでした。 –