действительно простой пример. У меня есть RESTful api, и я настраиваю свой ресурс следующим образом.
app.factory('apiFactory' , ['$resource', 'GLOBALS',
function($resource, GLOBALS){
return {
Discounts: $resource(GLOBALS.apiPath + 'discounts/:id', {id:'@id'}, {update:{method: 'PUT'}})
}
}
])
И затем я называю это в контроллере, например
var discountResponse = apiFactory.Discounts.save($scope.discount);
Все работает нормально, пока я не добавлю "/: id" в свой URL. Я делаю это так, чтобы мой метод удаления передавал идентификатор. Как и "скидки /6".
Проблема, которая у меня есть, заключается в том, что как только я добавляю заполнитель, метод save() отправляет GET вместо POST.
Request URL:http://local:8089/api/discounts
Request Method:GET
Status Code:200 OK
Если я удалю заполнитель, я получу
Request URL:http://local:8089/api/discounts
Request Method:POST
Status Code:200 OK
И все отлично работает, принимайте запрос на удаление, который теперь не отображает местозаполнитель, поскольку он больше не существует.
Я понятия не имею, почему. Я новичок в $ resource, поэтому я очень уверен, что не понимаю что-то.
Ответ был предоставлен по другому сформулированному вопросу, и я думал, что поделюсь им.
return {
Discounts: $resource(GLOBALS.apiPath + 'discounts/:id', {id:'@id'} ,{
save: {
method: 'POST', url: GLOBALS.apiPath + "discounts"
},
update: {
method: 'PUT', url: GLOBALS.apiPath + "discounts/:id"
}
})
}
Похоже, что для сохранения() в POST я должен был определить путь в объекте customConfig. Я не уверен, почему это не сработало для меня из коробки.
Ответ был предоставлен здесь. Большое спасибо!
ngResource save() странное поведение