如何在Angular服务中使用$ resource

时间:2014-09-19 11:47:11

标签: angularjs angular-resource angular-services

您好我需要通过angular从mongodb集合中查找/更新用户。 我需要通过_id和用户名找到它们,所以我创建了这样的服务:

// Users service used for communicating with the users REST endpoint
angular.module('users').factory('Users', ['$resource',
    function($resource) {
        return $resource('users/:id', {}, {
            update: {
                method: 'PUT'
            }
        });
    }
]);

在Express上,我有相对的API路线:

app.route('/users/:userId').put(users.update);

现在,假设我有另一条这样的快速路线来检查用户名可用性:

app.route('/users/:username').get(users.check);

如何在同一个角度服务中集成最后一个?

更新: 解决了这个问题,是吗?

angular.module('users').factory('Users', ['$resource',
    function($resource) {
        return {
            byId: $resource('users/:id', {}, {
                update: {
                    method: 'PUT'
                }
            }),
            byUsername: $resource('users/:username', {}, {
            })
        };
    }
]);

1 个答案:

答案 0 :(得分:3)

你想做这样的事吗?

角度服务:

angular.module('users').factory('Users', function($resource) {
var resource = $resource('users/:byAttr/:id', {}, {
    update: {
        method: 'PUT',
        isArray: false,
        cache: false
    }
});
return {
    updateById: function (id) {
        resource.update({id: id, byAttr: 'id'});
    },
    updateByName: function (username) {
        resource.update({username: username, byAttr: 'username'});
    },
}

});

路线:

app.route('/users/id/:userId').put(users.update);
app.route('/users/user/:username').get(users.check);