0

我仍在学习 Angular,并且在跨 $resources 访问和使用数据时遇到了一些问题。我有两个带有两组数据的 api 调用:赌注和用户。

url:/users/me 返回当前用户名和 id 作为对象

/wagers 将所有投注作为数组返回。投注中有一个名为 userA 的字段,wawers?userA=(current user id) 返回 userA=当前用户 id 的所有投注。

我无法让(当前用户 ID)动态拉入当前用户 ID。我的代码如下:

//services
.factory('User', function($resource, $cookies){
    return $resource('users/me', {}, {
        query: {method:'GET', params:{}, isArray:false}
    })
})
.factory('Wager', function($resource, User){
    return $resource('wagers/', {}, {
        query: {method:'GET', params:{}, isArray:true}
    })
})

//controller
function WagerListCtrl($scope, $cookies, User, Wager){
    $scope.users = User.query
    $scope.wagers = Wager.query({"userA":user.id})
}
4

1 回答 1

3

首先,您需要使用括号调用查询,例如:User.query()

其次, $resource 仅提供承诺,因此 $scope.users 很可能在控制器完成执行之前不可用。您应该在成功回调中调用 Wager。

User.query({}, function(data) {
  $scope.user = data;
  // assuming user has an id field
  $scope.wagers = Wager.query({"userA":$scope.user.id});
});
于 2013-06-27T16:56:12.513 回答