Angular服务,带有路由参数的$ http.get()?

时间:2014-09-27 06:42:24

标签: angularjs

通常在向API端点询问JSON时,我会写下这样的内容:

factory('User', function($http) {
    return {
        get: function() {
            return $http.get('/api/users');
        }
    }
});

但是,如何添加路由参数以获取特定用户(RESTful show method)?

即。 /api/users/1获得用户一号。但我希望它是基于登录用户的动态。

1 个答案:

答案 0 :(得分:3)

您可以使用 $resource 工厂,而不是$http。正如文档$resource中所述:

  

一个工厂,它创建一个允许您与之交互的资源对象   RESTful服务器端数据源。

要做你想做的事,你可以简单地声明:

factory('User', function($resource) {
    var UserResource = $resource('/api/users/:id');
    return UserResource;
});

用法:

.controller('Ctrl', function($scope, User) {

   // Sends GET /api/users/1
   User.get({id: '1'}).$promise.then(function(user) {
     // expects a single user data object
     console.log(user);
   });

   // Sends GET /api/users
   User.query().$promise.then(function(users) {
     // expects an array of user data objects
     console.log(users);
   });
});