3
無論如何在$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;
}
}
});
這樣做的目的是爲了檢查是否有任何對象已更改保存之前散裝。
如果我的表現不盡如人意,您能否提出一個更好的方法來實現這一目標?
你修改MyObject'的'原型爲'MyExtendedObject'你的工廠函數,所以你不創建第二種資源類型,所以不存在「僅在'MyExtendedObject」中。 – imaginaryboy
@imaginaryboy好吧,有沒有辦法實現類似於我正在嘗試的操作? – Petah