2015-10-15 1 views
0

Я создаю угловой ресурс следующим образом.Избегайте свойства из тела Углового ресурса POST-запрос

var Book = $resource(baseUrl + 'v1/users/:username/books/:id', { 
     username: '@username' 
     id: '@bookId' 
     }); 

Я посылаю POST вызов, используя save() следующим образом. Book.save ({имя пользователя: 'TestUser', BookID: 1, показать: истинный})

Это генерирует URL правильно

v1/users/testuser/books/1 

Но он посылает username, id в теле вместе с show:true, которые я хочу избежать. Как избежать username, id в теле?

+0

Включить параметр show в URL. Однако, если вы выполняете POST, лучше не указывать параметры данных в URL. Я где-то читал, что параметры для URL и тела не должны смешиваться вместе, как в вашем случае, я забыл, почему параметры в URL-адресе и теле не должны смешиваться. –

+0

Согласовано. Но я использую API, который предоставил URI, как это. Так почему-то я должен управлять тем же самым использованием ресурса. – thecodejack

ответ

0

Вот как, я получил его. Я использовал свойство transformRequest действий и удалял ненужные свойства.

var Book = $resource(baseUrl + 'v1/users/:username/books/:id', { 
     username: '@username' 
     id: '@bookId' 
     }, { 
     customSave: { 
     method: 'POST', 
     transformRequest: function(body) { 
      delete body.username; 
      delete body.id; 
      return angular.toJSON(body); 
     } 
     } 
}); 
+0

Это тоже решило мою проблему! Спасибо :) Но есть ли более чистый способ добиться этого? –