Я добавляю пару действий на 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 действия, поскольку модель по умолчанию связывания в Web Api не связывает объект JSON, когда этот объект имеет именованный корень.
Yup - Я думал, что у нас была последняя версия в нашей сборке, но я был неправ. Благодаря! – Stuart
У меня была такая же проблема - я звонил. $ Save на моем ресурсе, но устанавливал transformRequest в 'create'. – Ponny