Angularjs $resource的无限请求循环

angularjs infinite request loop for $resource

本文关键字:请求 循环 无限 resource Angularjs      更新时间:2023-09-26

由于某些原因,当我在angular中点击某个路由时,我的浏览器崩溃了,我的节点服务器发出了大量的请求:

GET /bower_components/bootstrap/dist/js/bootstrap.js?_=1402331354670 200 3ms - 53.96kb
GET /js/app.js?_=1402331354671 200 1ms - 1.56kb
GET /js/controllers/main.js?_=1402331354672 200 2ms - 140b
GET /js/controllers/login.js?_=1402331354673 200 3ms - 735b
GET /js/controllers/userList.js?_=1402331354674 200 2ms - 120b
GET /js/controllers/signup.js?_=1402331354675 200 1ms - 465b
GET /js/controllers/profile.js?_=1402331354676 200 1ms - 665b
GET /js/controllers/courseList.js?_=1402331354677 200 1ms - 369b
GET /js/controllers/courseDetails.js?_=1402331354678 200 4ms - 281b
GET /js/filters/titleize.js?_=1402331354685 200 1ms - 381b
GET /bower_components/jquery/dist/jquery.min.js?_=1402331354686 200 2ms - 82.3kb
GET /bower_components/angular/angular.min.js?_=1402331354687 200 1ms - 102kb
GET /bower_components/angular-route/angular-route.min.js?_=1402331354689 200 2ms - 3.86kb
...again and again forever

我点击的路由:

a(ng-href='/courses/{{ course._id }}') {{ course.title }}

在app.js中定义:

    $routeProvider.when('/courses/:id', {
        templateUrl: 'views/courses/details',
        controller: 'CourseDetailsCtrl',
    })

控制器:

app.controller('CourseDetailsCtrl', ['$scope', function($scope){
    console.log('commented everything out. doesnt display')
}])

Course服务:

app.factory('Course', ['$resource', function($resource){
    var courseResource = $resource('/api/courses/:_id', {_id: '@id'}, {
        update: {
            method: 'PUT',
            isArray: false
        }
    });
    return courseResource;
}]);

服务器端的路由如下:

app.get('/api/courses/:id', function(req, res, next){
    console.log('this never logs')
})
app.all('/api/*', function(req, res){
    res.send(404)
})
app.get('*', function(req, res){
    res.render('index', {
        currentUser: req.user
    })
})

我真的很困惑为什么课程部分不渲染,浏览器崩溃

原来我的客户端路由需要是

$routeProvider.when('/courses/:id', {
    templateUrl: '/views/courses/details',
    controller: 'CourseDetailsCtrl',
})

templateUrl路径中缺少一个/