2015-05-09 2 views
0

Я прошу их, чтобы помочь решить эту проблему, следует код:Параметры маршруты не перенаправляет на страницу 404

контроллер

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: '/' 
     }); 
    }); 

Когда я набираю маршрут, который не существует сразу после бара, например:

doma in.com/hhhoedr

возвращается на стартовую страницу.

Проблема заключается в подкаталоге, который содержит $routeParams, напечатав страницу, которая не существует, например:

domain.com/humor/hhhoedr

не перенаправлять to 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

Когда вы вводите какой-либо маршрут e.g-domain.com/hhhoedr, он возвращается на стартовую страницу, потому что, проверяя последнюю часть кода, вы устанавливаете его, как показано ниже.

.otherwise({ 
     redirectTo: '/' 
     }); 

Если вы установите что-нибудь, кроме как от вашей всего .when части будет просто редирект к исходному page.Try, чтобы установить его для перенаправления на любую другую страницу в соответствии с вашими требованиями.

Хорошо, теперь вы можете написать его, как показано ниже.

.otherwise({ 
      redirectTo: '/here give your destination path(e.g-404.html...etc)' 
     }); 
+0

Под редакцией мой вопрос ... Вы знаете, как я могу настроить этот код, [я нашел в другой ответ] (http://stackoverflow.com/questions/24862225/page-doesnt-redirect-to-the -specified-page-on-invalid-url), в мой код? –

+0

При использовании $ routeParams это не так просто. Излишне говорить о $ routerParams, когда в URL есть некоторая ошибка. –

Смежные вопросы