如何使用Angular在查询中使用来自$ resource的数据

时间:2013-06-26 16:57:29

标签: angularjs angularjs-scope angular-resource

我还在学习Angular,在访问和使用$ resources资源时遇到一些问题。 我有两个api调用,有两组数据:投注和用户。

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

/ wagers将所有投注作为数组返回。 投注中有一个名为userA的投注,投注?userA =(当前用户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})
}

1 个答案:

答案 0 :(得分:3)

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

其次,$ resource只提供promises,因此$ scope.users很可能在控制器执行完之后才可用。你应该在成功回调中打电话给Wager。

User.query({}, function(data) {
  $scope.user = data;
  // assuming user has an id field
  $scope.wagers = Wager.query({"userA":$scope.user.id});
});