如何通过" reloadOnSearch:false"带有ui-sref-opts的参数

时间:2017-07-21 07:40:34

标签: angularjs angular-ui-router

我有以下状态配置:

.state('test', {
                    url: '/info',
                    templateUrl: 'views/test.html',
                    // reloadOnSearch:false
                })

我不想在状态配置中启用reloadOnSearch = false。因为这样,它不允许用户更改URL并查看新数据。所以我想将此参数与ui-sref-opts一起传递。

我在互联网上尝试了足够的搜索,但这似乎没有效果:

这是我的HTML:

<tab ui-sref="test" ui-sref-active="active" active="testingState">
.......
</tab>

我试图传递,&#34; reloadOnSearch:false&#34;使用ui-sref-opts,但似乎并没有起作用。

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

我记得不久前必须这样做才能在搜索/过滤时随时保存浏览器历史记录。我发现我使用的帖子帮助我解决了问题,虽然它有点jankey(https://github.com/angular-ui/ui-router/issues/1079):

//set the reloadOnSearch on state to false initially in some code block
$state.current.reloadOnSearch = false;

// update query string here
$location.search({"from": 1, "to": 2});

//revert reloadOnSearch on the state!
$timeout(function () {
    $state.current.reloadOnSearch = undefined;
});

我相信您应该能够将此代码放在导致页面刷新的任何内容中。