2013-06-26 2 views
0

아직 각도를 배우고 있으며 $ 리소스에서 데이터를 액세스하고 사용하는 데 문제가 있습니다. 나는 두 세트의 데이터 즉, 내기와 사용자로 두 번의 api 호출을합니다.

URL :/사용자/날

/내기가 배열로 모든 내기를 반환하는 객체로 현재 사용자 이름과 ID를 반환합니다. wagers에서 wagers? userA = (현재 사용자 ID)라는 userA = 현재 사용자 ID를 가진 모든 내기를 반환하는 wagers라는 필드가 하나 있습니다.

(현재 사용자 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

이 같은 쿼리 호출에 괄호를 추가 할 수 있습니다 : User.query()를 –

+1

또 다른 한가지는 $ 자원은 약속이다, 그래서 $ scope.users 가장 가능성이 끝날 때까지 사용할 수 없습니다 컨트롤러가 실행됩니다. 성공 콜백 안에서 Wager를 호출해야합니다. –

+0

"현재 사용자 ID"가 "현재 사용자 ID를 동적으로 끌어 오기"로되어있는 방법을 명확히 할 수 있습니까? – Stewie

답변

3

첫째, 당신이 좋아, 괄호 쿼리를 호출해야합니다 : 내 코드는 다음과 같습니다 User.query()

둘째, $ 자원 만 제공 약속, 그래서 $ scope.users은 대부분 사용할 수 없습니다 컨트롤러가 실행 완료 될 때까지 성공 콜백 안에서 Wager를 호출해야합니다.

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