所以我试图通过重定向到“http://www.test.com/serie/2”来查看系列的信息页面。
我使用Angular路由,以前在重新加载页面时遇到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来删除网页扩展名。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 /error.php
我希望有人可以帮我解决这个问题,因为我在其他地方找不到任何答案。
答案 0 :(得分:1)
您已经传递了serie
中的整个ng-click
对象,但期望控制器中有一个id。可能需要将其更改为
ng-click="openSerie(serie.id)"
使用$location
可以更好地完成将位置路由到新路由的替代方法,因为这两条路由位于同一个基本路径上。
将window.location = url
更改为$location.path("/serie/" + id)
。