Javascript 使用$http(REST)从表单发布数据
我正在尝试使用Angular进行CRUD操作,但向服务器发送POST请求时遇到一些问题 这是我的控制器:Javascript 使用$http(REST)从表单发布数据,javascript,angularjs,rest,crud,angular-services,Javascript,Angularjs,Rest,Crud,Angular Services,我正在尝试使用Angular进行CRUD操作,但向服务器发送POST请求时遇到一些问题 这是我的控制器: angular.module('myModule').controller("ListingCtrl", function($scope, posts) { $scope.addProject = function () { if (!$scope.title || $scope.title === '') { return;
angular.module('myModule').controller("ListingCtrl", function($scope, posts) {
$scope.addProject = function () {
if (!$scope.title || $scope.title === '') {
return;
}
posts.create({
title: $scope.title,
short_description: $scope.short_description
});
$scope.title = '';
$scope.short_description = '';
};
});
这是我的服务:
angular.module('myModule', [])
.factory('posts', [
'$http',
function($http){
var o = {
posts: []
};
return o;
}]);
o.create = function(post) {
return $http.post('linktomyliveAPI', post).success(function(data){
o.posts.push(data);
});
};
最后,这里是观点:
<div ng-controller="ListingCtrl">
<form ng-submit="addProject()">
<input type="text" ng-model="title"></input>
<input type="text" ng-model="short_description"></input>
<button type="submit">Post</button>
</form>
邮递
我已经能够成功地发出GET请求,但由于某些原因,我无法理解POST
如果有必要的话,我的API是使用Django Rest框架构建的
谢谢 我认为您添加create方法的方式不合适,您必须在factory对象上添加该方法 将create方法放在从工厂返回的对象上 为您效劳
angular.module('myModule', [])
.factory('posts', ['$http',function($http){
var create = function(post) {
return $http.post('linktomyliveAPI', post).success(function(data){
o.posts.push(data);
});
};
var o = {
posts: [],
// expose create method on factory object
create: create
};
return o;
}]);
希望这些能解决您的问题。解决了它
我必须更改一些服务器端设置才能正常工作。浏览器控制台中有错误吗?您面临的问题是什么?列出你的控制台错误?不。看起来请求只是没有被发送@阿拉文德:没有任何控制台错误。我应该将$log添加到我的服务吗?错误代码?如果可能,添加您的控制台的屏幕截图
o
完全超出您尝试分配o.create
的范围。对于~“未捕获引用错误:未定义o”,您肯定会有控制台错误