У меня есть такая услуга:
(function() {
'use strict';
angular
.module('app.bookmark')
.factory('bookmarkService', bookmarkService);
function bookmarkService($http){
var url = 'api/bookmark';
bookmarkService.update = function(bookmark){
return $http.put(url + '/' + bookmark.id, bookmark);
};
return bookmarkService;
}})();
И я хотел бы перехватить запрос на метод PUT для отправки полезной нагрузки без атрибута ID, потому что у меня уже есть атрибут по URL.
Я создал эти функции:
function httpInterceptor($q) {
return {
request : function(config) {
if(config.method === 'PUT'){
delete config.data.id;
}
return config || $q.when(config);
}
};
}
Проблема в том, что атрибут id удаляется на экране (форме). Предположим, что ситуация, когда пользователь хочет остаться навсегда, несколько раз меняет данные одной и той же записи.
Создайте копию данных конфигурации вместо изменения исходного объекта.
function httpInterceptor($q) {
return {
request : function(config) {
config = angular.copy(config);
if(config.method === 'PUT'){
delete config.data.id;
}
return config || $q.when(config);
}
};
}