我还在学习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})
}
答案 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});
});