AngularJS - transformRequest ist nicht immer aufgerufen, $resource
Ich bin das hinzufügen von ein paar Aktionen, um eine AngularJS-Ressource, aber wenn ich die Aktion aufrufen, meine transformRequest Funktion nicht immer aufgerufen:
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;
}
}
});
Wenn ich die Funktion Global auf der app, es funktioniert:
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;
};
});
Was ich tun müssen, ist entfernen Sie das root-element von jedem POST-oder PUT-Aktion, weil die Standard-Modell-binding in Web-Api bindet nicht ein json-Objekt, wenn dieses Objekt hat eine namens root.
InformationsquelleAutor Stuart | 2013-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
transformRequest
unterstützt seit AngularJS 1.1.2. Wenn Sie eine frühe version ist, müssen Sie es hinzufügen, um$httpProvider
.Ich hatte das gleiche Problem - ich war der Aufruf .$sparen auf meine Ressource, sondern die Einstellung wurde transformRequest auf "erstellen".
InformationsquelleAutor zsong