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 に答える