我的AngularJS重定向看起来像这样:
// create the module and name it asApp
var asApp = angular.module('asApp', ['ngRoute']);
// configure our routes
asApp.config(['$routeProvider', '$httpProvider', '$locationProvider', function($routeProvider, $httpProvider, $locationProvider) {
$routeProvider
// route for the home page
.when('/', {
title: 'Home of PeppyBurro – Radical Spanish learning tips and tricks for the adventurous learner',
templateUrl : 'pages/home.html',
controller : 'mainController'
})
// route for the about page
.when('/about', {
title: 'About PeppyBurro – Radical Spanish learning tips and tricks for the adventurous learner',
templateUrl : 'pages/about.html',
controller : 'mainController'
})
// route for the 404 page not found error
.when('/notfound', {
title: 'Page not found',
templateUrl : 'pages/404.html',
controller : 'mainController'
})
.otherwise('/notfound', {
title: 'Page not found',
templateUrl : 'pages/404.html',
controller : 'mainController'
})
}]);
我需要的是,当在URL中输入未定义的slug时,脚本将我路由到404.html。因此,如果用户输入mysite.com/#/about
,则应向他显示about.html
页面。这个位工作正常。但是当用户输入mysite.com/#/abc
时,它应该向我显示我在404.html
和.otherwise
指令中定义的.when('/notfound')
页面。但是虽然.when('/notfound')
位正在工作,但.otherwise
位不起作用。有什么我想念的吗?
答案 0 :(得分:5)
答案 1 :(得分:2)
.when和.otherwise是两回事。
。定义路线时 .otherwise设置路线尚未创建时的默认路线。 $routeProvider.otherwise source code
您有两种选择。
取出路径
$routeProvider
// ... other routes
.otherwise({
title: 'Page not found',
templateUrl : 'pages/404.html',
controller : 'mainController'
})
或使用.when定义404路由并将路径路径传递给.otherwise。
$routeProvider
// ... other routes
.when('/notfound', {
title: 'Page not found',
templateUrl : 'pages/404.html',
controller : 'mainController'
})
.otherwise('/notfound');
希望这有帮助! 如果您有任何问题,请告诉我。
修改强>
// As of Angular 1.3
.otherwise('/notfound')
// is short hand for
.otherwise({redirectUrl: '/notfound'})
答案 2 :(得分:0)
您可以使用redirectTo
:
.otherwise({
redirectTo: '/notfound'
});