我请他们帮助解决这个问题,请遵循以下代码:
控制器
angular.module('tareasApp')
.controller('HumorCtrl', function ($scope, $route, $location) {
$scope.pageName = $route.current.params.pageName;
$scope.items =[
{
href:'/humor/smile-today',
img:'smile.jpg',
descricao:'Those Relaxing Sounds of Waves'
}
];
});
angular.module('tareasApp')
.controller('NewsCtrl', function ($scope, $route, $location) {
$scope.pageName = $route.current.params.pageName;
$scope.items =[
{
href:'/news/news-today',
img:'news.jpg',
descricao:'Those Relaxing Sounds of Waves'
}
];
});
App.js
myApp.config(function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
title: 'Home Page',
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/humor/:pageName', {
templateUrl: 'views/wizard.html',
controller: 'HumorCtrl'
})
.when('/news/:pageName', {
templateUrl: 'views/wizard.html',
controller: 'NewsCtrl'
})
.otherwise({
redirectTo: '/'
});
});
当我在栏后面输入任何不存在的路线时,例如:
domain.com/hhhoedr
返回起始页面。
问题出在子目录中,其中包含$routeParams
,键入不存在的页面,例如:
domain.com/humor/hhhoedr
不会重定向到index.html或404.html。
我想将此代码I found in another answer改编为我的应用。
myApp.constant('EXISTING_PAGES', [
'page1',
'page2',
...
]);
resolve: {
exists: function ($location, $route) {
if (EXISTING_PAGES.indexOf($route.current.params.page) === -1) {
$location.path('/error/404');
}
return true;
}
}
.when('/error/404', {
templateUrl: '404.html'
})
.otherwise({
redirectTo: '/error/404'
});
我该怎么办?
答案 0 :(得分:0)
当您键入任何路由e.g-domain.com/hhhoedr
时,它将返回到起始页面,因为检查您的代码的最后一部分,您将如下所示进行设置。
.otherwise({
redirectTo: '/'
});
如果你要设置除了所有.when
部分以外的任何内容,它将简单地重定向到起始页面。尝试将其设置为根据您的要求重定向到任何其他页面。
好的,现在你可以写下面的内容了。
.otherwise({
redirectTo: '/here give your destination path(e.g-404.html...etc)'
});