Monday, 30 September 2013

ngResource retrive unique ID from POST response after $save()

ngResource retrive unique ID from POST response after $save()

So I have a Resource defined as follows:
angular.module('questionService', ['ngResource'])
.factory('QuestionService', function($http, $resource) {
var QuestionService = $resource('/api/questions/:key', {}, {
query: {
method:'GET',
isArray:true,
},
save: {
method: 'POST',
}
});
return QuestionService
});
And later on I take some form input and do the following
var newQ = {
txt: $scope.addTxt
};
QuestionService.save(newQ)
The server responds to the POST request both by reissuing the JSON for the
object and setting the location header with the new unique ID. The problem
is that Angular is not saving that returned JSON or the location header
into the object and it is not getting set with the ID from the server for
future operations. I've tried a number of things such as:
transformResponse: function(data, headersGetter) {
locationHeader = headersGetter().location;
key = locationHeader.split('/').slice(-1)[0];
data.key = key;
return data;
}
However the returned data item doesn't seem to be getting used. Am I
missing something? This seems like a pretty common use case for
interacting with a REST api.
Thanks!

No comments:

Post a Comment