AngularJs $资源动态URL

时间:2014-07-07 08:49:31

标签: javascript angularjs rest ldap

我有这个REST服务,它与LDAP服务器说话。为了获得有关用户的所有可用数据,我必须访问:

GET /users/:userId

因为LDAP中的用户是由属性描述的,所以我想只获得一些并非所有属性。在这种情况下必须这样做:

GET /users/:userId/o/mail/displayName/....(list of attributes required)

如何在使用AngularJS $ resource时为属性列表创建此动态URL?

.factory('User', ['$resource', 'REST_API_URL', function ($resource, REST_API_URL) {
    var User = $resource(
                REST_API_URL + '/users/:id', 
                {id: '@id'}
        );

    return User;
}])

1 个答案:

答案 0 :(得分:2)

您描述的第一个URL遵循RESTful约定,但不是第二个。当URI中有动作动词(此处为displayName)时,您的API不再是RESTful。

AngularJS $resource仅与RESTful服务器端数据源进行交互。您的API必须遵循许多RESTful约定。

我建议你read answers to this question高度相关并描述这些惯例。

由于您的API不符合这些条件,因此您必须基于较低级$http service构建自己的类资源CRUD服务。 (example here