Javascript 强制AngularJS重新加载管线,尽管选项reloadOnSearch设置为false

Javascript 强制AngularJS重新加载管线,尽管选项reloadOnSearch设置为false,javascript,angularjs,angularjs-routing,Javascript,Angularjs,Angularjs Routing,在my AngularJS应用程序的路由配置中,大多数路由都是使用选项reloadOnSearch定义的,该选项设置为false,因为在大多数情况下,当搜索参数更改时,页面不应重新加载 但在极少数情况下,我需要一种不同的行为,需要重新加载URL,尽管只更改了搜索参数 有没有办法强制AngularJS重新加载URL,尽管reloadOnSearch设置为false?我没有尝试过,但您可以尝试的是 在$routeUpdate事件处理程序中,如果您知道应该导致路由刷新的条件,请调用$route.rel

在my AngularJS应用程序的路由配置中,大多数路由都是使用选项
reloadOnSearch
定义的,该选项设置为
false
,因为在大多数情况下,当搜索参数更改时,页面不应重新加载

但在极少数情况下,我需要一种不同的行为,需要重新加载URL,尽管只更改了搜索参数


有没有办法强制AngularJS重新加载URL,尽管
reloadOnSearch
设置为
false

我没有尝试过,但您可以尝试的是

$routeUpdate
事件处理程序中,如果您知道应该导致路由刷新的条件,请调用
$route.reload()
方法。

这也是可行的

app.controller('appCtrl',function($scope,$window){
           $scope.reload =function(){
               $window.location.reload(); 
           }
})
html

重新加载

如果您试图在用户单击链接时强制重新加载,请设置链接的目标属性。无论reloadOnSearch=false如何,它都将触发重新加载

<a href="/same_page?different_param=123" target="_self">Reload</a>


使用$routeUpdate事件处理程序意味着什么,我如何配置它的行为,或者它是AngularJS核心的一部分?我不想为了以后更新版本而改变框架本身。啊,好吧,现在我明白你的意思了。我应该听$routeUpdate事件,然后在必要时重新加载。基本上,您可以随时执行$route.reload()。什么时候做由你决定。由于您希望在搜索查询发生更改时刷新视图,因此,对。您如何知道搜索查询已更改。更新搜索查询时引发此事件。如果您包含示例
函数myController($route,$rootScope){$rootScope.$on('$routeUpdate',function(){if(/*shouldlreload*/){$route.reload();}}},则会有所帮助
虽然问题的形成并不是为了澄清他/她是想重新加载路由还是整个应用程序,但我很确定他/她想重新加载路由。你的解决方案重新初始化了整个应用程序。伙计!你让我开心了!这确实是一个黑客行为,但它运行良好,足以满足某些有限的需求。Thanks!这将重新加载整个应用程序,而不仅仅是路由。非黑客方式是使用ui sref opts=“{reload:true}”
<a href="/same_page?different_param=123" target="_self">Reload</a>