我有一个状态更改回调,它会重定向到相同的状态。
$rootScope.$on('$stateChangeStart', function(event, toState, toStateParams) {
if (toState.name != 'wsConnect') {
console.log("change path!!");
$location.path('/connect');
}
});
当用户打开新标签并输入包含任何网址锚点的路径时,它可以正常工作。用户从回调中看到视图,但是 如果用户手动更改锚点,则点击进入 回调工作在一半 - 锚点值被恢复,但用户看到的路线不是来自锚点。
如果你重新加载页面" bug"消失。
我找到了解决方法:
if (toState.name != 'wsConnect') {
console.log("change path!!");
$interval(function () {
$state.go('wsConnect');
$location.path('/connect');
}, 1, 1);
}
答案 0 :(得分:1)
也许考虑使用
$viewContentLoading
在呈现DOM之前,在视图开始加载时触发。 '$ rootScope'广播事件。
https://github.com/angular-ui/ui-router/wiki#view-load-events