2013-10-16 2 views
0

저는 AngularJS를 처음 사용했기 때문에 REST API를 사용해야합니다. 성공적으로 두 가지 방법으로 서버에서 프로젝트 컬렉션을로드 할 수 있지만이 목록에서 하나의 프로젝트를 가져 오지 못했습니다 (채워진 후). 나는 서버에서 아이템을 다시 얻고 싶지 않다.angularjs의 컬렉션에서 단일 항목 가져 오기

angularjs-rails-resource으로 시도하면 Project.query()을 사용하여 항목 목록을 가져올 수 있으며 $rootScope.projects에 저장할 수 있습니다. 그러나 나는이 ID로이 목록에서 항목을 가져 오는 방법을 궁금해합니다. 실제로 배열이 아니라 약속입니다.

또한 $rootScope.projects = Restangular.all("projects").getList()project = $rootScope.projects.get(id)을 사용하여 restangular으로 시도했습니다. 하지만 이것은 하나의 항목이 아닌 컬렉션을 반환하는 것처럼 보이기 때문에 실패합니다 ...?!

답변

0

angularjs-rails-resource의 경우 get(id) 만 사용할 수 있습니다. 그것은 템플릿이 약속을 이해하기 때문에 항상 템플릿에 사용한다면 괜찮은 약속을 반환합니다. 당신이 약속을하지 않으려면

, 당신은 하나의 항목을 사용 반환하기 위해 then

Project.get(1234).then(function (project) { 
    //project is NOT a promise 
    $scope.project = project; 
}); 

보다는

//project is a promise, but you're template is cool with that 
$scope.project = Project.get(1234); 
+0

을하지만이 수행 서버에 대한 또 다른 호출. $ rootScope.projects에 저장된 미리로드 된 목록에서 항목을 가져 오려고합니다. – gucki

+0

내가 오해 한 것 같습니다. forEach를 사용하여 반복 할 수 있습니다. 공장에 메서드를 추가하십시오. –

+0

죄송합니다. 실제로이 작업을 수행하는 방법을 모르겠습니다. angularjs-rails-resource 웹 사이트에서 기본 예제를 향상시켜 전체 예제를 제공 할 수 있습니까? – gucki

0

를 사용할 수 있습니다

$scope.project = Project.get(id: some_id); 
관련 문제