Angular $ resource create action undefined不是一个对象

时间:2016-01-10 15:11:49

标签: angularjs angular-resource

我有一个有效的RESTful API,经过Postman测试,GET端口也在我的应用程序中运行。

然而,当涉及到插入失败时,控制台中出现以下错误:

Error: undefined is not an object (evaluating 'newrecipeService.create')

我使用以下工厂进行创建操作:

app.factory('newrecipeService', function ($resource) {
  return $resource('/api/recipes/', {}, {
   create: {method: 'POST'}
  });
});

以下控制器:

app.controller('FormController', ['$scope',function($scope,newrecipeService){
  $scope.addRecipe = function() {
    newrecipeService.create({name: 'Test', nameID: 'test', category: 'TestCat', categoryID: 'testcat'});
  };
}]);

我通过路线将控制器传递给我的视图。我用一个按钮和ng-click调用addRecipe操作:

ng-click="addRecipe()

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

基本上你错过了在控制器函数中注入newrecipeService,所以在你的情况下newrecipeService是未定义的。在这种情况下,您必须在控制台中收到错误。

app.controller('FormController', ['$scope',function($scope,newrecipeService){

应改为

app.controller('FormController', ['$scope', 'newrecipeService' ,
    function($scope,newrecipeService){

修改

要在服务器端获取数据,您需要更改对象属性,以便通过匹配属性名称在服务器端获取它们。

app.controller('FormController', ['$scope',function($scope,newrecipeService){
  $scope.addRecipe = function() {
    newrecipeService.create({
       newRecN‌​ame: 'Test', 
       newRecNameID: 'test', 
       newRecCategory: 'TestCat', 
       newRecIngredients: 'someIngredients',
       newRecMethod: 'someRecMethod'
    });
  };
}]);