Запрос на перехват и изменение полезной нагрузки

0

У меня есть такая услуга:

(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 удаляется на экране (форме). Предположим, что ситуация, когда пользователь хочет остаться навсегда, несколько раз меняет данные одной и той же записи.

Теги:
angular-http-interceptors

1 ответ

1
Лучший ответ

Создайте копию данных конфигурации вместо изменения исходного объекта.

function httpInterceptor($q) {
    return {
        request : function(config) {
            config = angular.copy(config);

            if(config.method === 'PUT'){
                delete config.data.id;
            }
            return config || $q.when(config);
        }
    };
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню