我在实现客户端更新CRUD逻辑时遇到问题。这些字段当前正在按设置删除。我错过了什么?
我的角度:
$scope.editService = function(id) {
$http.put('/api/hc/' + id,
{title: 'new',
shortname: 'new',
summary: 'new',
description: 'new'}
)
.success(function(data) {
})
.error(function(data) {
console.log('Error: ' + data);
});
};
我的表达:似乎没有传递JSON值,由于某种原因,所有字段和键都被擦除干净,只留下_id和_v键和值。
.put(function(req, res) {
Service.findById(req.params._id, function(err, service) {
if (err)
res.send(err);
service.title = req.body.title; // update the items info
service.summary = req.body.summary;
service.shortname = req.body.shortname;
service.description = req.body.description;
// save the items
service.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Service updated!' });
});
});
})
我的观点
<form name="editForm" ng-submit="editService(service._id)" ng-repeat="service in services
filter:json">
<input type="text" placeholder="{{ service.title}}" ng-model="serviceTitle" required>
<input type="text" placeholder="{{ service.shortname}}" ng-model="serviceShortname" required>
<input type="text" placeholder="{{ service.description}}" ng-model="serviceSummary" required>
<textarea type="text" placeholder="{{ service.summary}}" ng-model="serviceDescription" required></textarea>
<button type="submit">Edit</button>
</form>
答案 0 :(得分:1)
您实际上并未将数据放在您提供的示例中。
$http.put('/api/hc/' + id)
应该是
$http.put('/api/hc/' + id, formData)
其中formData
是您从要发送管道的表单字段中收集的任何对象。另外,对于角度$[resource][1]
服务有一个雄浑之道,与直接使用$http
相比,它是一种更干净(imo)的REST客户端方式。