【发布时间】:2015-11-27 14:12:59
【问题描述】:
我正在使用带有 NodeJS 后端的 Ionic/Angular 开发应用程序。我制作了一个更新表单,用户可以在其中编辑/删除一行。删除有效,但编辑功能有问题。在我的控制台上,会显示:http://localhost:3000/api/todos/%7B%22todo%22:%22NewT%22,%22todo_text%22:%22Text%20EditionT%22%7D。我想知道如何使编辑请求起作用。
下面是我的服务器端请求代码:
router.put('/api/todos/:_id', function(req, res) {
db.todos.update({
_id: mongojs.ObjectId(req.body._id)
}, {
todo: req.body.todo,
todo_text: req.body.todo_text
}, {}, function(err, data) {
res.json(data);
});
});
我的更新表单的代码(删除和编辑功能)。请注意,HomeFac 用于我的 services.js,它指向 REST API(http://localhost:3000/api/todos/(id 编号):
.controller('UpdateCtrl', function($stateParams, $rootScope, $scope, HomeFac) {
id = $stateParams.id;
$scope.todo = {};
HomeFac.getBeer(id).success(function(data) {
var met = data[0];
$scope.todo.todo = met.todo;
$scope.todo.todo_text = met.todo_text;
});
$scope.edit = function(id, inputs) {
var inputs = {
todo : $scope.todo.todo,
todo_text : $scope.todo.todo_text
};
data = angular.toJson(inputs);
HomeFac.updateBeer($stateParams.id, data
).then(function(id, data) {
alert("edited!");
});
};
$scope.delete = function() {
HomeFac.deleteBeer(id);
};
});
services.js 中的啤酒服务
_BeerService.updateBeer = function(todo, _id) {
return $http.put(urlBase + '/' + _id, todo);
};
【问题讨论】:
-
可以展示updateBeer函数吗?
-
@LeandroZubrezki 刚刚添加了代码。
-
您是否在服务器中收到请求?在那里添加一个日志并检查发生了什么。还为 promise 添加一个错误函数,以便您知道它是否失败
-
前端唯一重要的是传入的请求是什么,所以我将问题简化为“这个请求在给定这个服务器端代码的情况下得到这个响应”。
-
一些问题:它是否上路了?
req.body是您所期望的吗?是否正在运行回调?如果有,error和data是什么?
标签: javascript angularjs node.js ionic