在下面的示例中,我使用API中检索到的资源进行了一些转换。
var resource = $resource('http://example.com/resource/:id');
$scope.record = resource.get({id: 123});
$scope.record.$promise.then(function(response) {
// do some transformations
response.date = moment(response.date, "YYYY-MM-dd").format("dd MM YYYY");
});
以同样的方式,我在保存之前对数据进行转换。
var record.$save();
我提交的POST数据由API返回。该返回值将成为Resource对象的新值。
但是,它不是我在使用GET演示时使用的格式。
有没有办法阻止$ save()替换资源的值?
答案 0 :(得分:0)
有一个未解决的问题是在ngResource中添加了一个选项以禁用此行为(#8370)。
在此期间,请使用transformResponse
操作定义中的save
选项:
app.factory('Things', ['$resource', function($resource) {
var transform = function(data, headersGetter) {
data.date = moment(response.date, "YYYY-MM-dd").format("dd MM YYYY");
return data;
};
return $resource('/thing/:id', {}, {
'get': {
'transformResponse': transform
},
'save': {
'transformResponse': transform
}
});
}]);
请参阅:https://docs.angularjs.org/api/ngResource/service/$resource