在我的Angular应用中,某些路由将reloadOnSearch
设置为false,以便Bootstrap tabs正常运行。
当其中一个视图中的链接链接到那些视图中的另一个时,就会出现问题。链接不起作用,因为控制器不会重新加载视图。
因此,我必须在这些链接上使用ng-click
。
$scope.goToThisPage = function () {
$location.path(newPage);
$route.reload();
};
但是,这不起作用,并且总是将我带到默认路由。如果将函数的最后一行替换为
$scope.$apply()
,也会发生同样的情况。在
reloadOnSearch
设置为false的路线之间移动的最佳方法是什么? 最佳答案
每个选项卡都有单独的控制器吗?
据我所知,reloadOnSearch: false
仅在查询参数或url中的哈希值更改时才阻止控制器重新加载。因此,在/route/page?param=1
和/route/page?param=2
之间移动不会重新加载控制器,但是绝对可以。
我不完全了解您如何解决此问题,但就其价值而言,这是当我拥有一个控制器时如何解决reloadOnSearch问题的方法。即使在搜索参数更改时不会重新加载控制器和视图,但/route/anotherpage
仍会重新加载,因此我只听控制器中的$location
并对回调中的绑定范围变量进行任何更改。
编辑
查看选项卡的文档,您是否可能不仅仅使用链接来切换选项卡,而是使用$locationChangeSuccess
调用.tab("show")
方法?