【发布时间】:2015-03-26 03:03:06
【问题描述】:
我在 AngularJS 中使用 ui.router 和 ngResource,我的问题是:
如何在不重定向的情况下呈现 404,例如,用户键入 http://www.example.com/wrong-page-name,他应该只看到 404 页面,并且 URL 不应该改变。
目前我是这样做的,但它会重定向
angular.module('app')
.run(['$rootScope', '$state', function($rootScope, $state) {
$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {
if(error.status === 404) {
$state.go('innerPages.page', {slug:"not-found"});
}
});
})
.config(['$stateProvider','$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$stateProvider.state('innerPages.page', {
url: ':slug',
views : {
'content@':{
templateUrl : '...',
controller : 'pageController'
},
'pageHeader@' : {
templateUrl : "...",
controller : 'pageController'
}
},
resolve:{
page: ['pageService', '$stateParams', function (pageService, $stateParams) {
return pageService.get({slug:$stateParams.slug}).$promise;
}]
}
});
}]);
感谢您的帮助!
【问题讨论】:
标签: angularjs http-status-code-404 angular-ui-router angular-resource