У меня есть этот код:AngularJS ngResource удалить событие не вызывая функцию обратного вызова
dogsResource.delete({id: $stateParams.dogId}, angular.noop,
function(value, responseHeaders){
//Success
console.log(value);
console.log(responseHeaders);
},
function(httpResponse){
//Error
console.log(httpResponse);
}
);
удаляемого сделан, проблема в том, что ни успех, ни ошибка вызываются. Я также пытался использовать экземпляр (это означает, что использовать $ delete), но он тоже не работал.
Я попытался проверки обратных вызовов с другими методами, например, получить
$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"}});
}])
UPDATE 2
Я нашел ошибку. Это было в RESTful API (Node js). Метод ничего Угловая не отправлял, поэтому нет обратного вызова не было вызвано:
//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()
получил обратный вызов тревоги.
Спасибо вам всем за ваше время.
Я знаю, это звучит очевидно, но должно ** angular.noop ** быть там вообще? –
@camden_kid Док говорит, что в действиях без http должно быть postData, и мне это не нужно. Кстати, я также пробовал с null, {} и даже игнорировал его. – CamiloR
Да, в соответствии с этим http://stackoverflow.com/questions/16579201/angularjs-how-to-handle-success-and-error-call-backs-with-ngresource вы правы. Есть ли ошибки в консоли? –