AngularJS - 不会在$ resource上调用transformRequest

Stu*_*art 6 angularjs

我正在向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;
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

如果我在应用程序上全局添加该功能,它可以工作:

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;
    };
});
Run Code Online (Sandbox Code Playgroud)

我需要做的是从任何POST或PUT操作中删除根元素,因为当该对象具有命名根时,Web Api中的默认模型绑定不会绑定json对象.

zs2*_*020 5

transformRequestAngularJS 1.1.2开始支持.如果您使用早期版本,则需要将其添加到$httpProvider.