404 при перенаправлении на страницу с параметром url с помощью AngularJS

0

Поэтому я пытаюсь перейти на информационную страницу для сериала, перенаправляя, например, " http://www.test.com/serie/2 ".

Я использую Угловую маршрутизацию и ранее имел проблему с получением 404, когда я перезагружал страницу. Теперь это работает, но теперь он дает одно перенаправление на страницу сери. Вот мой код до сих пор.

Домашний вид:

<div class="col col-md-10">
    <div class="col col-md-3" ng-repeat="serie in series | limitTo: 10">
        <serie-card
            id="serie.id"
            name="serie.name"
            genres="serie.genres"
            img="serie.image.medium"
            lang="serie.language"
            rating="serie.rating"
            status="serie.status"
            ng-click="openSerie(serie)">
        </serie-card>
    </div>
</div>

Контроллер для директивы serie-card:

app.controller('serieCardController', ['$scope', '$location',  function($scope, $location){
    $scope.openSerie = function(id){
        var url = rootUrl+"/serie/" + id;
        window.location = url;
    }
}]);

Мой файл app.js

app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
            $routeProvider.
            when('/home', {
                templateUrl: 'templates/home.php',
                controller: 'homeController'
            }).
            when('/serie/:id',{
                templateUrl: 'templates/serie.php',
                controller: 'serieInfoController'
            }).
            when('/login',{
                templateUrl: 'templates/login.php',
                controller: 'loginController'
            }).
            otherwise({
                redirectTo: '/home'
            });

            $locationProvider.html5Mode(true);
}]);

Я не знаю, помогает ли она чему-либо, но также добавил.htaccess, чтобы удалить расширение страницы URL-адреса.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

ErrorDocument 404 /error.php

Надеюсь, кто-то может помочь мне в этом вопросе, так как я не мог найти ответы нигде.

Теги:
angular-routing

1 ответ

1

Вы прошли весь serie объект в ng-click но ожидаете идентификатор в контроллере. Вероятно, нужно изменить это на

ng-click="openSerie(serie.id)"

Альтернативно для маршрутизации местоположения на новый маршрут лучше всего использовать $location поскольку два маршрута находятся на одном базовом пути.

Измените window.location = url на $location.path("/serie/" + id).

  • 0
    Я заметил, что проблема с serie / id пробовала только с id. Также я попытался использовать $ location.path, но он выдаст мне ошибку «$ location.path is not function», и у меня есть $ location.
  • 0
    работает ли window.location ?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню