在使用angular-ui-router时,有时候我们希望在某些状态下实现正常的后退导航,但又不想显示URL。下面是一种解决方法:
url
属性为空字符串。$stateProvider.state('hiddenState', {
url: '',
component: 'hiddenComponent'
});
app.component('hiddenComponent', {
template: ''
});
$stateChangeStart
事件,并在事件回调中检查要导航的目标状态是否为hiddenState
。$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
if (toState.name === 'hiddenState') {
// 取消导航
event.preventDefault();
// 执行你的逻辑
// ...
}
});
通过以上步骤,我们可以实现在hiddenState
状态下的正常后退导航,同时不显示URL。