Mat*_*ork 13 javascript angularjs angular-ui angular-ui-router
例如,我想在导航中进行此更改以重新加载状态:
#/detail/1#/detail/2但我不希望这个导航重新加载状态:
#/detail/1?search=blah#/detail/1?search=huzzah根据ui-router文档,设置reloadOnSearch: false应该完成这个,但尝试下面的插件.何时reloadOnSearch === false,更改路径参数不会重新加载状态,即使文档说它应该.
Plunkr:http: //run.plnkr.co/ZPy9uabYlkMilwdS/#/param
Rad*_*ler 32
我创建了一个plunker,证明该ui-router功能reloadOnSearch正如此处所述:
reloadOnSearch:
布尔值(默认为true).如果false 因为搜索/查询参数已更改而不会重新触发相同的状态.当您想要修改$ location.search()而不触发重新加载时有用.
那么,这就是说,如果我们确实有这样的状态
.state('index.detail', {
url: '/detail/:id',
reloadOnSearch : false,
...
})
Run Code Online (Sandbox Code Playgroud)
导航到
ui-sref="index.detail({id:1})" 将导航到加载此状态
ui-sref="index.detail({id:any-other-id})" 什么都不做 但!如果我们要引入像这样定义的新(例如兄弟)状态:
.state('index.other', {
url: '/other/:id',
reloadOnSearch : false,
...
})
Run Code Online (Sandbox Code Playgroud)
导航到下面的序列将始终重新触发状态重新加载,不是因为参数更改,而是因为状态更改
<a href="#/index/detail/1" ...<a href="#/index/other/1" ... // will relaod<a href="#/index/detail/2" ... // because the state<a href="#/index/other/2" ... // is changing看到所有的行动在这里 ...