reloadOnSearch = false时更改路径

时间:2014-06-05 03:58:00

标签: javascript angularjs twitter-bootstrap

在我的Angular应用中,某些路由将reloadOnSearch设置为false,以便Bootstrap tabs正常工作。

当其中一个视图中的链接链接到另一个视图时,就会出现问题。链接只是不起作用,因为控制器不会重新加载视图。

所以我必须在这些链接上使用ng-click

$scope.goToThisPage = function () {
  $location.path(newPage);
  $route.reload();
};

但是,这不起作用,并始终将我带到默认路由。如果我用$scope.$apply()替换函数的最后一行,也会发生同样的情况。

reloadOnSearch设置为false的路线之间移动的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

每个选项卡都有单独的控制器吗?

据我所知,reloadOnSearch: false只会阻止控制器重新加载,如果网址中的查询参数或哈希值发生变化。因此,在/route/page?param=1/route/page?param=2之间移动不会重新加载控制器,但绝对应该转移到/route/anotherpage

我不完全理解你是如何得到这个问题的,但是对于它的价值,这就是我在拥有一个控制器时解决reloadOnSearch问题的方法。即使控制器和视图在搜索参数更改时没有重新加载,$location仍然会这样做,所以我只是在控制器中监听$locationChangeSuccess并对回调中的绑定范围变量进行任何更改。

修改

查看标签文档,您是不是可以不使用链接切换标签,而是使用.tab("show")调用ng-click方法?