为什么我的$ location.path('test')没有改变地址栏

时间:2015-02-10 22:07:51

标签: javascript angularjs window.location

我在一个庞大的代码库中工作,所以我无法在小提琴中复制结果。我正在处理的组件是用Angular编写的。

到目前为止,我已经尝试了

window.location.href = 'test'
$location.path('test')
$location.hash('test')

每个变体都有效,并且console.log确认散列已更改,但我的地址栏保持不变。

据我所知,有许多变数可能导致这种情况,但我没有探索的途径。谁能给我一些我可能会忽视的可能原因?我已经搜索了preventDefault()的代码库,我尝试了各种不同的设置哈希值的方法,我甚至尝试在setTimeout中包装哈希重定义。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你可以尝试

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

请注意,必须在应用程序的摘要周期中运行所有角度操作。如果使用未使用某些角度服务处理它的函数进行此调用,则不会通知上下文更改。