我想使用UI路由器$stateChangeStart
来捕获从' / foo / bar'到' / foo / bar':
$rootScope.$on('$stateChangeStart', function() {
// ...
});'
基本上,我想在点击当前状态的链接时捕获,这样我就可以强制重新加载。
答案 0 :(得分:0)
$stateChangeStart
事件才会触发。在重定向到相同状态时,State
不会有任何变化。无法跟踪与前一个相同的更改状态。这就是为什么你想要的东西,使用$stateChangeStart
事件无法实现。
我建议你创建一个你自己的指令,它会在点击它时触发检查状态的代码。
<强>指令强>
.directive('uiSref', function($state){
return {
link: function(scope, element, attr){
element.on('click', function(event){
if(attr.href.substring(1, attr.href.length) === $state.current.url)
//from here you can track state haven't changed
console.log("Success")
});
}
}
})
如果您只想重新加载控制器,那么您只需在状态级别提及reload: true
。
这不是一个合适的方法。它的工作来自我。