2

这是我的 app.js

var cricketapp = angular.module('cricketapp', ['ngCookies']).
    config(['$routeProvider', function($routeProvider, $httpProvider, $cookies){
        $routeProvider.
            when('/', {
                templateUrl: '/partials/games-pending-entry.html',
                controller: HomeCtrl
            }).
            when('game/:gameId',{
                templateUrl: 'partials/shortlist.html',
                controller: ShortlistCtrl
            }).
            otherwise({redirectTo: '/'});
        //$httpProvider.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
    }]);

和controllers.js

function HomeCtrl($scope, $http){
    $http.get('/api/games-pending-entry').success(function(data){
        $scope.games_pending_entry = data;
    });
}

function ShortlistCtrl($scope, $http, $routeParams){
    $scope.gameId = $routeParams.gameId;
    $http.get('api/get-players').success(function(data){
        $scope.players = data;
    })
}

在我的 html 中,我将链接称为

<a class='btn btn-warning' href='#/game/{{ game.id }}'>Enter Shortlist</a>

当我单击此链接时,我被重定向回 /#/

我哪里错了?

4

1 回答 1

3

您的 $routeProvider 规则是错误的:

when('game/:gameId',{

应该成为

when('/game/:gameId',{

由于无法识别路由,它会重定向到“/”。改变它很可能会解决问题。

此外,在解决 {{model}} 绑定之前,您可能会发现 ngHref 很有用,以避免链接断开:http ://docs.angularjs.org/api/ng.directive:ngHref

于 2013-05-08T18:46:07.220 回答