1
私たちは、共通エンティティを中心とした一連のカスタムAPIとのやりとりを行うためにファクトリを使用しています。しかし、私がする必要があるのは、ヘッダーに返されたカスタムレスポンスを評価することです。これを行うには、transformResponseを使用する方法があるようです。私が持っているものは働いているようですが、文字通り、同じ定義を何度も繰り返しています。再利用できるように関数を作成しようとしましたが、参照が失敗するようです。私は間違って何をしていますか?各定義に
transformResponse: transResp(data, header, status, config, statusText),
、その後、これはisJSON直後の関数である:
(function()
{
'use strict';
angular.module('aumBills', ['ngResource'])
.factory('Bills', ['$resource',
function($resource)
{
return $resource(
'/ua_aumcore/bills/api/v1/bills/:billableEventI',
{
billableEventI:'@billableEventI'
},
{
getList:
{
method: 'GET',
isArray: false,
transformResponse: function(data, header, status, config, statusText)
{
var response = {};
if (isJson(data))
{
data = angular.fromJson(data);
response.data = data;
}
response.status = status;
response.config = config;
response.statusText = statusText;
return response;
},
url: '/ua_aumcore/bills/api/v1/bills/query/'
},
getParties:
{
method: 'GET',
isArray: false,
transformResponse: function(data, header, status, config, statusText)
{
var response = {};
if (isJson(data))
{
data = angular.fromJson(data);
response.data = data;
}
response.status = status;
response.config = config;
response.statusText = statusText;
return response;
},
url: '/ua_aumcore/bills/api/v1/customer/billParties/?partySites=:partySiteIDs',
params: {partySiteIDs: '@partySiteIDs'}
}
//plus about 12 more after this
});
}]);
function isJson(str)
{
try
{
JSON.parse(str);
}
catch (e)
{
return false;
}
return true;
}
})();
上記と同じに見えた破ったコードは、私だけは入れ
function transResp(data, header, status, config, statusText)
{
var response = {};
if (isJson(data))
{
data = angular.fromJson(data);
response.data = data;
}
response.status = status;
response.config = config;
response.statusText = statusText;
return response;
}
私たちに失敗したコードを教えてください。私たちがあなたがしたことを見ない限り、あなたが間違っていたことを伝えることはできません。 – georgeawg
コードを追加しました。これは単に関数呼び出しを置き換えたものです。コンソールは、transformResponseの最初の定義で「データが定義されていません」と吐き出します。 –