[AngularJS] transform in $http services
transform is used to format json or whatever return from the server.
Usage:
Profile.factories = angular.module("profileFactories", []); Profile.factories.factory('Skills', ['$http', '$q', 'ProfileTransformer', function($http, $q, ProfileTransformer){ return{ getSkills: function(){ var deferred = $q.defer(); $http({ url: './public/js/profile/skills.json', cache: true, method: "GET", transformResponse: ProfileTransformer }) .success(function(data){ return deferred.resolve(data); }); return deferred.promise; } } }]);
var apiTransform = angular.module("publicTransformer", []); apiTransform.factory('ProfileTransformer', function () { return function(data){ data = JSON.parse(data); if(_.size(data)>0){ data = _.map(data, function(d){
//Here we format JSON according to what we want! return {name: d.name, level: d.level, bold_normal: d.b} }) } return data; } });
Unit Testing:
/** * Created by Answer1215 on 9/5/2014. */ describe("transform tresponse", function(){ var transformer, response; beforeEach(function () { module('publicTransformer'); inject(function ($injector) { transformer = $injector.get('ProfileTransformer'); }); }); it("should return an empty array when it receives an empty array", function(){ expect(transformer('[]')).toEqual([]); }); it("should return 2 items with name level and b", function(){ expect(transformer(response)).toEqual([ {"name": "Hadoop", "level": "Learning", "b": "normal"}, {"name": "D3.js", "level": "Learning", "b": "bold"} ]) }) beforeEach(function(){ response = JSON.stringify( [ {"name": "Hadoop", "level": "Learning", "b": "normal"}, {"name": "D3.js", "level": "Learning", "b": "bold"} ] ) }) })
分类:
AngularJS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具