我在一个庞大的代码库中工作,所以我无法在小提琴中复制结果。我正在处理的组件是用Angular编写的。
到目前为止,我已经尝试了
window.location.href = 'test'
$location.path('test')
$location.hash('test')
每个变体都有效,并且console.log确认散列已更改,但我的地址栏保持不变。
据我所知,有许多变数可能导致这种情况,但我没有探索的途径。谁能给我一些我可能会忽视的可能原因?我已经搜索了preventDefault()的代码库,我尝试了各种不同的设置哈希值的方法,我甚至尝试在setTimeout中包装哈希重定义。
感谢您的帮助!
答案 0 :(得分:1)
你可以尝试
$timeout(function() {
$location.path('test');
});
请注意,必须在应用程序的摘要周期中运行所有角度操作。如果使用未使用某些角度服务处理它的函数进行此调用,则不会通知上下文更改。