2017-04-08 4 views
1

사용자 문서의 인덱스 인 firebaseArray에 연결된 ng-repeat가 있습니다. 각 문서에 대한 추가 정보가 포함 된 문서 목록을 표시하려고합니다. 제목과 설명입니다.AngularFire - firebaseArray의 각 항목에 대해 firebaseObject를 얻습니다. ng-repeat

내 중포 기지 구조는 다음과 같습니다

나는이 동작하지 않습니다 여전히 모든 것을 시도했습니다
+users 
    - userId1 
    -theirDocs 
     -docId1: true 
     -docId2: true 

+docs 
    -docId1 
     - tile 
     - description 
     - url 
    -docId2 
    - etc etc 

, 그것은 매우 일반적인 사용 케이스를 보인다. 나는 매번 firebaseObject를 호출하는 함수를 사용하여 시도했다. 별도의 컨트롤러를 사용해 보았습니다. 나는 지시어를 시험해 보았고 firebase.utils 라이브러리를 사용해 보았다. (필자는 구식이라고 생각한다.)

누구나 AngularFire를 사용하여 가장 좋은 방법을 추천 할 수 있습니까? 미리 감사드립니다!

답변

0

문제가있는 곳을 판별하기가 어렵 기 때문에 먼저 시도한 것을 완전히 이해하는 것이 더 낫습니다. 즉, 귀하의 규칙이 이것을 방지하지 못한다면 사전에 $ loaded 함수를 사용하여 데이터가 다운로드 될 때까지 기다려야 할 수도 있습니다.

이 예는이 link을 따라 명확하게 볼 수 있습니다, 그러나 여기에서 더 명확 예입니다 : 지금 그것을 추가 할 것입니다

var yourFirebaseReference = firebase.database().ref("REPLACE WITH YOUR FIREBASE BRANCH HERE"); 
var data = $firebaseArray(yourFirebaseReference); 
data.$loaded().then(function(x) { 
    console.log(data) // Example, you can do what you want with your 'data' now as the data has loaded 
    x === data; // true 
}).catch(function(error) { 
    console.log("Error:", error); 
}); 
+0

감사합니다. 이 유형의 쿼리를 해결하기 위해 모서리 파이어로이를 수행하는 가장 좋은 방법은 무엇인지 이해하고 싶습니다. –

+0

$ loaded 함수를 제공하면 문제가 해결되며, 이는 dta가로드되기를 기다리는 시간 지연으로 인한 것입니다. 서버. 희망이 있으면 문제를 해결하는 데 도움이되며 대답이 있으면 대답을 수락하십시오. –

+0

예, 해결했습니다! 정말 고마워! 방금 목록 항목에 사용할 작업 컨트롤러를 만든 다음 $ loaded를 사용하여 범위 변수에 적용하여 완벽하게 작동합니다. 또한 나는 여기에 새로운 대답을 받아들이는 방법을 모르겠다 ... –