2014-10-17 42 views
1

我有角的$資源的通用寧靜資源。在任何保存方法,我也想設置一個消息和布爾對我在什麼範圍,並設置該消息的超時。所以在我的代碼,我調用.save /.$保存在任何地方,我再附上一個。最後到它(如下圖)。

而不是將相同。最後在每次保存我打電話,我想知道如果我可以只寫一個終於到實際的資源本身,而有這個是我的保存功能的通用終於。


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() }} 

就是我要找的。這可能嗎?

回答

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 
    } 
])