2016-09-06 2 views
0

저는 Facebook News Feed와 유사한 News Feed 작업을하고 있습니다. 나는 다음과 같은 순서를 구현하고있다 : 응용 프로그램이 시작되면

  1. 하는 모든 것을 얻을 수 있지만 보여주기 위해 두 개의 항목을 누릅니다.

  2. 사용자가 아래로 스크롤하면 더 많은 것을 볼 수 있으며 목록에 더 추가 할 것입니다.

  3. 새 항목이있는 경우 새 항목을 추가하려면 새로 고치기 위해 당겨야합니다.

내가 지금 가지고있는 유일한 문제는 항목이 추가 될 때마다, $firebaseArray가 자동으로 내가 세트를 얻을, 한 번 쿼리 할 (을 snyc 변경을 원하지 않는 내 배열에 새 항목을 추가하는 것입니다 목록). 누군가 자동 업데이트를 방지하는 방법을 알고 있는지 궁금 해서요?

답변

0

보기에 직접 $firebaseArray을 바인딩하는 대신보기에 바인딩되는 범위 (또는 컨트롤러) 속성에 복제하십시오. $firebaseArray이 다시 생성되도록 사용자가 다시로드 할 때 호출 할 수있는 함수에서이 프로세스를 인수 분해합니다.

좀 더 적절한 접근 방법은 $http 서비스와 함께 Firebase의 http api를 사용하는 것입니다.

편집 : 범위의 VAR에 배열을 복제하려면 다음을 시도해보십시오 :

이 한 번만 데이터를 얻을 수 있습니다 선택하셨습니다으로
var allEvents = $firebaseArray(queryOfeverything); 

allEvents.$loaded() 
    .then(function(events){ 
     $scope.allEvents = angular.map(events, function(event) { 
      return event; // you may want to replace this line - I am not very familiar with firebase. 
     }) 
    }); 
+0

내가 비슷한 않았다 이게 이미 당신이 의미하는 바라면 말이야. \t $ scope.allEvents = $ firebaseArray (queryOfeverything); $ scope.eventToDisplay = $ scope.allEvents. 불행히도, 이것은 작동하지 않았다. –

+0

기술적으로 자바 스크립트 객체 인'$ firebaseArray'를 참조로 전달하기 때문입니다. 해당 $ scope 변수에 매핑 (배열을 일반 자바 스크립트 배열에 복제)해야합니다. 나는 대답을 업데이트 할 것이다. – vgrafe

1
+0

'once()'가 참으로 도움이되지만, 문제는'$ firebaseArray()'가 OP 코드에서'on()'을 추상화한다는 것입니다. –

+0

그렇기 때문에 OP가 그것을 사용할 수 있다고는 생각하지 않습니다. –

+0

Frank와 Mathew에게 감사드립니다! 나는 이것을하기 때문에 firebaseArray를 사용하고있다. orderByChild ("dateSince1970"). startAt (nowSince1970);''내가 얻는 이벤트를 주문하고 있는데 이벤트 만 받기를 원합니다. 특정 날짜 이후. 한 번 사용하면 특정 날짜 이후의 이벤트를 포함하고 각도에 따라 orderby를 사용하여 각각에 대해 수행 할 수 있습니다. 그것이 가장 효율적인 방법인가요? 정말 고맙습니다! –