代码之家  ›  专栏  ›  技术社区  ›  MadPhysicist

AngularJS TypeError:$resource不是函数

  •  1
  • MadPhysicist  · 技术社区  · 9 年前

    我有以下控制器,它以以下形式给我带来麻烦

    TypeError:$resource不是函数

    指向 var Activities = $resource('/api/activities');

    app.controller('AddActivityCtrl',['$scope','$resource','$location','$rootScope',
        function($scope, $rootScope, $resource, $location){
            console.log($scope.user.email);
            //$scope.activity.user = $rootScope.user.email;
            $scope.save = function(){
                var Activities = $resource('/api/activities');
                $scope.activity.events = [];
                Activities.save($scope.activity, function(){
                    $location.path('/')
                })
            }
        }
    ]);
    

    它以前工作得很好,但我刚刚测试了这个功能,而自从上次测试以来,我所做的一些事情似乎已经破坏了它。这可能是什么原因?

    以下来自app.js

    var activities = require('./routes/activities');
    app.use('/api/activities', activities);
    

    在我的活动中。js我有

    //API point for listing all existing activities
    router.get('/', function(req, res){
        var collection = db.get('Activity');
        //collection.find({}, function(err, activities){
        collection.find({user:req.user.email}, function(err, activities){
            if (err) throw err;
            res.json(activities);
        });
    });
    
    ...
    
    1 回复  |  直到 9 年前
        1
  •  3
  •   brk    9 年前

    问题似乎与注射顺序有关

    app.controller('AddActivityCtrl',['$scope','$resource','$location','$rootScope',
        function($scope, $rootScope, $resource, $location){
    

    你正在注射 $resource 作为第二次发球但传球 $rootScope 作为第二个参数。

    注入顺序和参数必须匹配

    ['$scope','$resource','$location','$rootScope',
            function($scope, $resource, $location, $rootScope){..}
    
    推荐文章