Javascript 为什么';t my$location.path(';test';)更改地址栏

Javascript 为什么';t my$location.path(';test';)更改地址栏,javascript,angularjs,window.location,Javascript,Angularjs,Window.location,我在一个庞大的代码库中工作,所以我不能一蹴而就地复制结果。我正在处理的组件是用角度写的 到目前为止我已经试过了 window.location.href = 'test' $location.path('test') $location.hash('test') 每个变体都有效,并且console.log确认哈希已更改,但我的地址栏保持不变 我知道有很多变量可能导致这种情况,但我没有办法去探索。有人能告诉我一些我可能忽略的可能原因吗?我已经搜索了preventDefault()的代码库,尝试了

我在一个庞大的代码库中工作,所以我不能一蹴而就地复制结果。我正在处理的组件是用角度写的

到目前为止我已经试过了

window.location.href = 'test'
$location.path('test')
$location.hash('test')
每个变体都有效,并且console.log确认哈希已更改,但我的地址栏保持不变

我知道有很多变量可能导致这种情况,但我没有办法去探索。有人能告诉我一些我可能忽略的可能原因吗?我已经搜索了preventDefault()的代码库,尝试了所有可以想象的设置散列的不同方法,甚至尝试了在setTimeout中包装散列的重新定义

谢谢你的帮助

你可以试试

$timeout(function() {    
     $location.path('test');
});

假设所有角度动作都必须在应用程序的摘要循环中运行。如果您使用的函数不是使用某些angular服务来处理它,则不会将更改通知上下文

您的代码可能在一个框架中。。。查看是否执行
var t=window;而(parent!=t)t=parent;t、 location.href='test'如何
$location.path('/test')
?谢谢!就是这样,设置后使用$scope.apply()