2015-09-21 3 views
0

полезной нагрузки У меня есть службы, как это:запрос Intercept и изменение

(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); 
     } 
    }; 
} 

Проблема заключается в том, что идентификатор атрибут удаляется на экране (форма). Предположим, что ситуация, когда пользователь хочет остаться навсегда, несколько раз меняет данные одной и той же записи.

ответ

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); 
     } 
    }; 
}