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;
};
});
オブジェクトに名前付きルートがある場合、Web Api の既定のモデル バインディングは json オブジェクトをバインドしないため、POST または PUT アクションからルート要素を削除する必要があります。