在我的AngularJS应用程序中,我想捕获错误并将用户发送到404状态,如下所示:
$rootScope.$on('$stateNotFound', function(event, unfoundState, fromState, fromParams){
//console.log(unfoundState.to);
//console.log(unfoundState.toParams);
//console.log(unfoundState.options);
$state.go('404');
});
这适用于用户点击应用中的错误链接(,例如没有状态,有状态但没有内容由其他方法处理)等等。
代码加载404状态:
.state('404',
{
views: {
'body': {
templateUrl: 'partials/404.html',
}
}
});
但我想要做的是将URL更改为他们尝试访问的状态,因此基本上加载404状态但使用不正确的URL(因为404可以在服务器环境中工作)。
我调查过:
history.replaceState(null, null, unfoundState.to);
$state.go('404');
但是这会导致应用程序出现重大错误并更改URL而不是状态!
我该怎么做?
答案 0 :(得分:1)
尝试此操作以捕获与之前任何路线不匹配的所有网址:
.state("404", {
url: "*path", // will catch all URLs
templateUrl: 'partials/404.html'
})
答案 1 :(得分:1)