2016-06-27 45 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

相關問題