たとえば、このナビゲーションの変更で状態をリロードしたいとします。
#/detail/1
#/detail/2
しかし、このナビゲーションで状態をリロードしたくありません。
#/detail/1?search=blah
#/detail/1?search=huzzah
Ui-routerのドキュメントによると、reloadOnSearch: false
はこれを達成するはずですが、以下のプランクを試してください。いつ reloadOnSearch === false
、ドキュメントがそうするべきだと書いても、pathパラメータを変更しても状態はリロードされません。
これはリリース0.2.15で修正されたUIルーターのバグです。
https://github.com/angular-ui/ui-router/releases
最新にアップグレードすると問題が解決します
plunker を作成しました。_ui-router
_機能reloadOnSearch
がドキュメントどおりに機能していることを示しています here :
reloadOnSearch:
ブール(デフォルトはtrue)。 falseの場合、再トリガーは行われません同じ状態検索/クエリパラメータが変更されたためです。リロードをトリガーせずに$ location.search()を変更したい場合に役立ちます。
だから、これが言うことは、もし私たちがこのような状態にあるなら
_.state('index.detail', {
url: '/detail/:id',
reloadOnSearch : false,
...
})
_
に移動する
ui-sref="index.detail({id:1})"
に移動しながら、この状態をロードします
ui-sref="index.detail({id:any-other-id})"
何もしません。だが!このように定義された新しい(例:兄弟)状態を導入する場合:
_.state('index.other', {
url: '/other/:id',
reloadOnSearch : false,
...
})
_
以下のシーケンスに移動すると、常に状態の再読み込みが再トリガーされますparamが変更されたためではなく、状態が変更されたため
<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
_すべてが動作していることを確認してください ここ ...