我有一个有效的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()
你能帮我解决这个问题吗?
答案 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({
newRecName: 'Test',
newRecNameID: 'test',
newRecCategory: 'TestCat',
newRecIngredients: 'someIngredients',
newRecMethod: 'someRecMethod'
});
};
}]);