我所关注的应用是使用states和ui-sref进行路由(也有Kendo,但我不知道它是否会影响路由)。我在html上有5个选项卡(相同的状态-只是#tab-x从#tab-1更改为#tab-5)。我将指令绑定到每个选项卡上,在指令中,我使用$location服务来确定当前的url。问题是:当我
console.log($location)
它显示正确"# tab -x“,但是当我使用$location.$$url做一些处理时,它显示以前的tab值。有没有可以在这里使用的“位置更改成功”事件?我试过了:
$scope.$on("locationChangeSuccess", function (event, next, current) {
});
但它并没有起作用。
发布于 2017-10-24 19:24:18
事件在那里,但以$sign为前缀:
$scope.$on("$locationChangeSuccess", function (event, next, current) {
console.log($location.hash());
}); 您可以使用$location.hash()来获取该值。
工作插入器在这里:https://plnkr.co/edit/KEJft8iwbxN3VfBhikIU?p=preview
https://docs.angularjs.org/api/ng/service/$location#event-$locationChangeSuccess
这是angularjs事件。你也可以使用ui-router的$stateChangeSuccess事件,就像@Satpal在评论中提到的那样,但该事件可能不会被调用,因为状态并没有真正改变(你没有定义包含散列的状态,对吧?)。
此外,您不应该使用$$前缀属性,这些属性应该是私有的。
https://stackoverflow.com/questions/46909250
复制相似问题