2016-06-27 53 views
1

我有以下控制器是给我麻烦的

TypeError: $resource is not a function

形式指向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); 

在我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); 
    }); 
}); 

... 

回答

3

这个问题似乎是与注射的顺序

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

你正在注入$resource作为第二个服务,但通过$rootScope作为第二个参数。

注入和参数的顺序

['$scope','$resource','$location','$rootScope', 
     function($scope, $resource, $location, $rootScope){..} 
+0

我不知道这并必须匹配。这对所有参数都适用吗? – MadPhysicist

+0

这是我从https://docs.angularjs.org/guide/di 中读取的内容使用此类型注释时,请注意使注释数组与参数在函数声明中保持同步。 – brk

+0

这样做。谢谢你教我:-) – MadPhysicist

相关问题