AngularJS transformResponse
在
angularjs资源中,我想将我的json数据转换成JS对象
//Complex object with inheritance chain function Car(year,make){ this.make = make; this.year = year; } var carResource = $resource("/api/car/id",{id: '@id'},{ get: { method: 'GET',transformResponse: function(data,headersGetter){ return new Car(data.make,data.year); } } } ) 不过这似乎并没有发生 我回来的是一个$资源对象,意味着属性make和year都正确设置,然而返回的对象的原型指向$resource 有没有办法可以将我的json数据直接映射到我自己的对象? 还是要写自己的“资源”实现?
transformResponse在$http级别上执行.
当您使用自定义配置对象定制$资源操作时,该对象实际上传递到底层的$http服务.所以如果你指定一个transformResponse回调函数,它将在$http级别执行,你的转换结果将被传回给$resource. $资源服务将从您的响应数据(已由transformResponse回调转换)中实例化新对象,并且此新对象将是$资源本身的一个实例. 所以,你的汽车对象将是汽车的一个实例,但只有一会儿,直到它的属性被复制到一个新的$资源对象. 这是一个简单的过程: > $资源服务启动请求 无论如何,我不建议装饰或扩展$资源服务,因为使用$http服务编写自己的实现更为简单. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |