我在使用 AngularJS 的 $http 时遇到了一种奇怪的行为,并且并没有真正理解 transformResponse 的工作原理(文档对此有点了解)。
WebAssets.get = function () {
return $http.get('/api/webassets/list', {
transformResponse: [function (data, headersGetter) {
// not sure what to do here?!
return data;
}].concat($http.defaults.transformResponse) // presume this isn't needed, added for clarity
}).then(function (response) {
return new WebAssets(response.data);
});
};
api 返回一个对象数组:
[{"webasset_name": "...", "application_id": "...", "etc": "..."}, ... ]
但是,当 transformResponse 完成后,数据已转换为索引对象:
{"0":{"webasset_name":"...","application_id":"...", "etc": "..."}, "1":....}
我想保留原始数据结构(对象数组)。