我有这个代码:
dogsResource.delete({id: $stateParams.dogId}, angular.noop, function(value, responseHeaders){ //Success console.log(value); console.log(responseHeaders); }, function(httpResponse){ //Error console.log(httpResponse); } );
删除完成后,问题是既没有成功也没有错误被调用.我也尝试过使用一个实例(这意味着使用$ delete),但它也没有用.
我尝试用其他方法测试回调,比如get
$scope.dog = dogsResource.get({id: $stateParams.dogId}, function(value, res){ console.log(value); });
它有效.我不知道为什么会这样,因为狗正在从数据库中删除.
谢谢
UPDATE
dogResource代码
// Return the dogs resource .factory('dogsResource', ['$resource', function($resource){ return $resource("http://localhost:5000/dogs/:id",{id: "@id"},{update: {method: "PUT"}}); }])
更新2
我发现了错误.它在RESTful API(Node js)中.该方法没有向Angular发送任何内容,因此没有触发回调:
//DELETE - Delete a dog with specified ID exports.deleteDog = function(req, res) { console.log('DELETE' + req.params.id); Dog.findById(req.params.id, function(err, dog) { dog.remove(function(err) { if(err) return res.status(500).send(err.message); console.log('Succesfully deleted.'); res.status(200); }) }); };
更换res.status(200)
用res.status(200).end()
了回调触发.
谢谢大家的时间.