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

Schreibe einen Kommentar