如果我是“结果页”的返回用户,我想查看我使用过的最后一个过滤器。所以我使用ngCookies
来更新页面上最后使用的搜索参数。
controller('Results', ['$location','$cookies',function($location,$cookies){
$location.search(angular.fromJson($cookies.search));
}]);
//will yield: /results?param1=dude¶m2=bro
但是,如果我点击“ back ”,我将不会被带到我期望的最后一页。
那是因为另一个州被推到了历史上但却没有被用户察觉。
用户登陆/results
,但控制器立即将/results?param1=dude¶m2=bro
推送到州历史记录中。
如何覆盖或删除状态/results
,以便“返回”会将我返回到用户期望他们来自的最后一页的位置?
答案 0 :(得分:10)
将replace()
链接到$ location.search电话的末尾:
controller('Results', ['$location','$cookies',function($location,$cookies){
$location.search(angular.fromJson($cookies.search)).replace();
}]);
这会导致替换最后一个历史记录条目,而不是添加新条目。
还有reloadOnSearch选项,您可以将其设置为false
,以防止在搜索参数更改时重新加载路径(如果您希望后退按钮转到/results
)。