2014-09-05 105 views
8

我有一个router viewreloadOnSearch: false
这是一个搜索页面。
进入没有任何搜索参数我尝试设置一些默认值时:
像: 进入:#/search
我设置的默认值标准杆:#/search?currpage=1&pagesize=20
使用$location.search({currpage:1,pagesize:20})的任务完成了,但我也得到推新网址历史,这是预期的,但在这种特殊情况下,它braks导航流的逻辑(点击后退按钮得到#/search,并再次设置默认值和推)
有没有办法替换搜索字符串防止历史推动?

回答

17

您是否试过使用专用的replace()方法?它防止添加一个历史纪录:

$location.search({currpage:1,pagesize:20}).replace() 

一个$location.search()后从未使用过它,但它绝对适用于$location.path()

+1

这就是我需要的,谢谢! ..我不知道为什么我错过了它,这是在文档中搜索后立即描述的方法!无论如何,它非常灵活,因为它标记为替换当前摘要循环中所做路径的所有更改,所以在搜索或路径调用之后调用它不是必需的,甚至可以在更改之前调用它 – aleclofabbro 2014-09-07 12:59:21

+1

这是一个救星! +1 – 2016-01-14 06:40:22

+1

这救了我的命。谢谢。 – FeinesFabi 2017-03-22 13:33:47