2013-08-29 48 views
6

我增加了對行動的AngularJS資源,但是當我調用的動作,我transformRequest功能是沒有得到所謂:

var _resource = $resource('api/NewItem/:id', 
    { id: '@id' }, 
    { 
     create: { 
      method: 'POST', 
      transformRequest: function (data, headersGetter) { 
       var result = JSON.stringify(data.productIntro); 
       return result; 
      } 
     }, 
     update: { 
      method: 'PUT', 
      transformRequest: function (data, headersGetter) { 
       var result = JSON.stringify(data.productIntro); 
       return result; 
      } 
     } 
    }); 

如果我添加功能全局上的應用程序,它的工作原理:

var newItemApp = angular.module('newItemApp', ['ngResource']) 
.config(function ($httpProvider) { 
    $httpProvider.defaults.transformRequest = function(data) 
    { 
     if (data === undefined) { 
      return data; 
     } 
     var result = JSON.stringify(data.productIntro); 
     return result; 
    }; 
}); 

我需要做的是從任何POST刪除根元素或PUT操作,因爲默認模式在網絡API結合不結合JSON對象時對象有一個命名根。

回答

5

transformRequestAngularJS 1.1.2起支持。如果您使用早期版本,則需要將其添加到$httpProvider

+0

是 - 我認爲我們的版本中有最新版本,但我錯了。謝謝! – Stuart

+0

我有同樣的問題 - 我打電話。$保存在我的資源上,但在'create'上設置了transformRequest。 – Ponny