Angular JS路由无法正常工作

时间:2016-03-03 03:32:34

标签: javascript angularjs

我试图在访问控制器后将我的页面路由到另一个页面,但它无法正常工作。我可以路由前两页,但第三页不起作用。有人可以帮我这个。

这是我的路由代码:

$routeProvider', function ($routeProvider) {
            $routeProvider.
                when('/category', {
                    //templateUrl : 'js/partials/course-list.html',
                    controller : 'CategoryController'
                }).
                when('/category/:categoryid', {
                    templateUrl : 'js/partials/film-list.html',
                    controller : 'MovieController'
                }).
                when('/actor/:filmid', {
                    templateUrl : 'js/partials/actor-list.html',
                    controller : 'ActorController'
                }).
                otherwise({
                    redirectTo : '/'
                });
        } 

目前我的ActorController无效。一旦我点击电影,它应该显示电影的演员,但在我的情况下它不起作用

这是我的movie-list.html的部分html文件

<section>
<h3>{{movieCount}}</h3>
<table>
    <tr data-ng-repeat="movie in movies" data-ng-click="selectFilm($event,movie)"  style="cursor: pointer;">
        <td>{{movie.title}}</td>
    </tr>
    <strong>{{successMessage}}</strong>
</table>

这是我的控制器代码

).controller('ActorController', 
            [
                '$scope', 
                'dataService', 
                '$routeParams',

                function ($scope, dataService, $routeParams){
                    $scope.actors = [ ];
                    $scope.actorCount = 0;

                    var getActors = function (moviecode) {
                        dataService.getActors(moviecode).then(
                            function (response) {
                                $scope.actorCount = response.rowCount + ' actors';
                                $scope.actors = response.data;
                                $scope.showSuccessMessage = true;
                                $scope.successMessage = "Actor Success";
                            },
                            function (err){
                                $scope.status = 'Unable to load data ' + err;
                            }
                        );  // end of getStudents().then
                    };

                // only if there has been a courseid passed in do we bother trying to get the students
                if ($routeParams && $routeParams.filmid) {
                    console.log($routeParams.filmid);
                    getActors($routeParams.filmid);
                }

                }
            ]
        )

这是MovieController

中的selectFilm()代码
$scope.selectedFilm = {};
                    $scope.selectFilm = function ($event,movie) {
                        $scope.selectedFilm = movie;
                        $location.path('/actor/' + movie.film_id); 
                    }

这是电影控制器代码

).controller('MovieController', 
            [
                '$scope', 
                'dataService', 
                '$routeParams',
                '$location',

                function ($scope, dataService, $routeParams, $location){
                    $scope.movies = [ ];
                    $scope.movieCount = 0;

                    var getMovies = function (moviecode) {
                        dataService.getMovies(moviecode).then(
                            function (response) {
                                $scope.movieCount = response.rowCount + ' movies';
                                $scope.movies = response.data;
                                $scope.showSuccessMessage = true;
                                $scope.successMessage = "Movies Success";
                            },
                            function (err){
                                $scope.status = 'Unable to load data ' + err;
                            }
                        );  // end of getStudents().then
                    };
                    $scope.selectedFilm = {};
                    $scope.selectFilm = function ($event,movie) {
                        $scope.selectedFilm = movie;
                        $location.path('/actor/' + movie.film_id); 
                        // $window.location.href = '/actor/' + movie.film_id
                        console.log(movie.film_id);

                    }

                // only if there has been a courseid passed in do we bother trying to get the students
                if ($routeParams && $routeParams.categoryid) {
                    console.log($routeParams.categoryid);
                    getMovies($routeParams.categoryid);
                }

                }
            ]
        )

1 个答案:

答案 0 :(得分:1)

我自己解决了问题首先,函数中没有定义$ location变量,后来电影对象没有film_id所以我不得不重新调整我的SQL查询以使其工作。更改SQL查询后,我可以立即路由我的页面。