使用Angular $ resource更正相关数据的模式

时间:2014-10-30 08:11:43

标签: javascript angularjs rest

我理解AngularJS中$ resource的概念是返回

  • 资源,表示此资源的对象(获取,更新,删除)
  • 表示此资源(查询)的对象列表

我使用的后端不能一次性提供所有必需的信息。

例如:/User/:id

user = User.get({id: userId});返回用户。大。

如果我需要获得他的朋友的数量,我还有另外一个请求:

/User/:id/count=friend

返回:

{ count: 17 }

我陷入困境,我无法使用user变量,否则我将失去用户对象。另外,结果将是一个数字,不再代表我的用户。

'脏'方式是返回$http并将结果分配给user.friendsNumber = data.count

但仍然不干净,如果我user.$put()某事,我会失去我的user.friendsNumber,因为它会被重新分配。

正确处理此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以像这样指定动作,我相信其他参数只会成为常规获取变量。

angoApp.factory('User', function($resource) {
  return $resource('/User/:id', {
    id: '@id'
  }, {
    countFriends: {
      method: 'GET',
      params: {
        count: 'friends'
      }
    }
});

...

User.$countFriends({id:123});
//This should call /User/123?count=friends