2016-06-02 20 views
0

たとえば、「http://www.test.com/serie/2」にリダイレクトしてセリエの情報ページにアクセスしようとしています。AngularJSを使用してURLパラメータを使用してページにリダイレクトするとき

角度ルーティングを使用していましたが、以前にページをリロードしたときに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> 

セリエカードディレクティブのコントローラ:

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); 
}]); 

それは場合に役立ちます私は知りませんurlページの拡張を削除するために.htaccessを追加しました。

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

ErrorDocument 404 /error.php 

他の場所で回答が見つからなかったので、誰かがこの問題を助けてくれることを願っています。

答えて

1

serieオブジェクト全体をng-clickに渡しましたが、コントローラにIDが必要です。おそらく二つの経路が同一のベース・パス上にあるので、より良い使用$locationが行われ、新しいルートに場所をルーティングするため

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

代替的にそれを変更する必要があります。

変更window.location = url~$location.path("/serie/" + id)

+0

私は、IDだけで試したserie/id問題に気付きました。 また、$ location.pathを使用しようとしましたが、 "$ location.pathは関数ではありません"というエラーが表示され、$ locationが挿入されています。 –

+0

'window.location'は期待どおりに動作しますか? – Sajal

+0

はい、それは私を "www.test.com/serie/1"のようなURLにリダイレクトしますが、404で応答します –

関連する問題