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