所以我有一个资源定义如下:
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
});
后来我接受了一些表单输入并执行以下操作
var newQ = {
txt: $scope.addTxt
};
QuestionService.save(newQ)
服务器通过重新发出对象的 JSON 并使用新的唯一 ID 设置位置标头来响应 POST 请求。问题是 Angular 没有将返回的 JSON 或 location 标头保存到对象中,并且没有使用来自服务器的 ID 进行设置以供将来操作。我尝试了很多事情,例如:
transformResponse: function(data, headersGetter) {
locationHeader = headersGetter().location;
key = locationHeader.split('/').slice(-1)[0];
data.key = key;
return data;
}
然而,返回的数据项似乎没有被使用。我错过了什么吗?这似乎是与 REST api 交互的一个非常常见的用例。
谢谢!