2014-01-10 3 views
0

가정하자 내가 가지고 중포 기지는 : 공장에서 firebase treeangularFire에 데이터를로드를 제어하는 ​​방법

나는 모델 생성 :

.factory ('$model', function ($firebase) { 
    var ref = new Firebase('https://xxxxx.firebaseio.com/admins/proefje'); 
    var model = $firebase (ref); // this loads all the data! 
    model.loaded = false; 

을 그리고 내 컨트롤러에서 나는 모델을 사용 예 :

  1. 컨트롤러가 활성화되면 데이터가로드됩니다. 나는 이것을 해결하기 위해 앱을 약간 재구성해야한다고 생각한다.

  2. 데이터의 일부가 상당히 커짐에 따라, 얼마나 많은 데이터가로드되는지 제어하려고합니다. 한 번에 모든 데이터를로드하고 싶지 않습니다. 내가 limit() 함수를 시도했지만 angularFire에서 구현되지 않은 것 같습니다. 해당되지 않습니다 the docs. $ child() 함수를 통해 파트를로드하려고 시도 할 수는 있지만 여전히 전체 테이블을로드하고 있습니다.

이것에 대한 의견이 있으십니까?

+0

일부 샘플에 대해서는 angularfire http://angularfire.com/을 참조하십시오. – Chandermani

+0

@chandermani : 예제를 다시 읽은 후, var model = $ firebase (ref.limit (n));로로드를 제어 할 수 있다는 것을 깨달았습니다. 이 링크를 통해 angularFire를 제거하고 firebase API로 작업하는 것이 가장 융통성이 있다는 사실을 깨닫게되었습니다. – JvdBerg

답변

1

해결하려면 (1), ngRoute에서 resolve() 메소드를 사용할 수 있습니다. 이렇게하면 컨트롤러에 도달하기 전에 $firebase(ref)의 '로드 된'이벤트가 시작될 때까지 기다릴 수 있습니다.

AngularFire는 제한을 지원하지만 $firebase 메서드로 ref.limit()를 전달하기 만하면됩니다. 또한 적절하게 Firebase API를 직접 사용할 수도 있습니다.

관련 문제