在 $resource
初始化后是否有设置 transformResponse
的方法?
我基本上有一个扩展的 $resource
,但我想将 transformResponse
附加到扩展版本,而不是原始版本。
angular.module("services").factory('MyObject', function($resource) {
var MyObject = $resource('/my/object.json');
MyObject.prototype.someBusinessLogic = function() {};
return MyObject;
});
angular.module("services").factory('MyExtendedObject', function($resource, MyObject) {
MyObject.prototype.someExtendedBusinessLogic = function() {};
return MyObject;
});
因此在该示例中,我想将 transformResponse
设置为类似这样的内容(仅在 MyExtendedObject
中):
$resource('/my/object.json', {}, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data) {
var objects = angular.fromJson(data);
for (var i = 0; i < objects.length; i++) {
objects[i] = new MyExtendedObject(objects[i]);
objects[i].hash = JSON.stringify(objects[i]);
}
return objects;
}
}
});
这样做的目的是在批量保存之前检查是否有任何对象被更改。
如果我偏离了标准,你能建议一个更好的方法来实现这个目标吗?
最佳答案
似乎您可以利用$resource
给您的$promise
...
angular.module("services").factory('MyExtendedObject', function($resource, MyObject) {
MyObject.get({whatever:'here'}).$promise.then(function(result){
var transformedStuff = result;
//<!--do transform stuff here-->
return transformedStuff;
});
});
关于javascript - 初始化后设置 $resource transformResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21418279/