URL personnalisée de ressource angulaire

J'essaye d'ajouter une méthode simple sur angulaire de ressources, en gros comme ceci:

/api/ressources/:id/archive

Si je le fais juste comme ça:

angular.module('myApp')
.factory('api', function($resource) {
    var api = {
        messages: $resource('/api/messages/:id', {id: '@id'}
        , {
            archive: {
                method: 'PUT'
                , params: {id: '@id'}
                , url: '/api/messages/:id/archive'
            }
        }
    return api;
})
.controller('myCtrl', function(api) {
    //once I get messages and do stuff...
    $scope.archive = function(msg) {
        api.messages.archive({id: msg._id}, successHandler, failureHandler);
    }
});

Il ne fonctionne pas, j'obtiens un simple PUT (*/api/messages/{id}*). Je l'ai essayé avec un autre param.

Dans l'usine:

....
archive: {
    method: 'PUT'
    , params: {id: '@id', action: '@action'}
    , url: '/api/messages/:id/:action'
....

Dans le contrôleur:

api.messages.archive({id: msg._id, action: 'archive'} ...)

- Je obtenir le deuxième paramètre la requête en tant que param, plutôt que comme une partie de l'url.

source d'informationauteur Zlatko | 2013-11-18