我有一个带有angular的$ resource的通用restful资源。在任何save方法中,我还想在我所处的任何范围上设置消息和布尔值,并为该消息设置超时。所以我的代码中的任何地方都调用.save /.$ save,然后我将.finally附加到它上面(下面)。
我想知道我是否可以将最终写入实际资源本身,而不是将相同的.finally放在我所调用的每个存储上,而不是最终为我的保存函数设置它。
var resource = $resource(
pageListPath,
{},
{
query: {method:'GET', isArray:true},
get: {method:'GET', url: pageDetailPath, params:{id:'@id'}, cache:true},
save: {method:'PUT', url: pageSavePath, params:{id:'@id'}},
delete: {method:'DELETE', url: pageDetailPath, params:{id:'@id'}}
}
);
return resource;
.finally(function() {
$scope.loading = false;
$timeout(function() {
$scope.message = false;
}, 2500);
});
理想情况类似
save: {
method:'PUT',
url:pageSavePath,
params:{id:'@id'},
finally:function() { doStuff() }}
是我正在寻找的。这可能吗?
答案 0 :(得分:1)
我最终编写了另一个服务来封装这个服务,为某些响应提供通用功能。
API服务:
pageServices.factory('PageAPI',
['$resource',
function($resource,
var resource = $resource(
pageListPath,
{},
{
query: {
method:'GET',
isArray:true
},
get: {
method:'GET',
url: pageDetailPath,
params:{ id:'@id' }
},
...,
...,
}
);
return resource;
}]
);
pageServices.factory('Page', ['PageAPI',
function(PageAPI) {
var service = {
'getPages': function() {
return PageAPI.query(function(response) {
// Do stuff with success
}, function(err) {
// Handle error
}).$promise.finally(function() {
// Generic finally handler
}
},
...,
...,
}
return service
}
])