2014-03-31 4 views
0

보기에 보내기 전에 내 firebase 데이터에 간단한 문자열 비교, 계산 및 필터링을 수행하고 싶습니다. firebase 객체 내부의 데이터에 액세스하는 방법을 알아낼 수 없습니다.AngularJS 컨트롤러 내에서 firebase 객체에 액세스하는 방법

여기 내 중포 기지 목적은 '테스트 /'+ $ routeParams.id에 있습니다 : 여기

{ 
    "createdDate":"2014-03-30T18:04:28.927Z", 
    "modified":"2014-03-30T18:04:28.927Z", 
    "region":"shoulder", 
    "step1":{ 
     "defined_incident":"no", 
     "localized_or_referred":"localized", 
     "recent_surgery":"no", 
     "symptoms":"constant" 
    }, 
    "title":"testtest", 
    "user":"simplelogin:1" 
} 

내 컨트롤러 :

.controller('TestCtrl', ['$scope', 'syncData', '$routeParams', function($scope, syncData, $routeParams) { 

    syncData('tests/'+$routeParams.id).$bind($scope,'test'); 

    //this is where i want to access $scope.test 
    //and check if $scope.test.region is equal to 'shoulder', etc. 

    if($scope.test.region.$value == 'shoulder') { 
     if($scope.test.step1.localized_or_referred.$value == 'localized') { 
      alert('Shoulder & Localized!'); 
     } 
    } 
}]) 

내가 무슨 말이냐? 나는 fireBase 객체를 OrderByPriority 필터를 사용하여 배열로 변환하려고했지만 성공하지는 못했습니다.

답변

1

귀하의 문제는 $scope.test 값을 사용하는 코드가 $bind 이후에 너무 빨리 호출된다는 것입니다. Firebase와 동기화 할 애플리케이션 시간을 주어야합니다. 그 시점까지는 데이터가 없습니다.

$bind 메서드는 Firebase에서 초기 데이터가로드되면 해결 될 약속을 반환합니다. 다음과 같이 시도하십시오.

+0

고마워요! 나는 그것이 단순한 무엇인지 알았다. 그것은 완벽하게 작동합니다. – jpamorgan

+0

저는 각과 방화범을 처음 사용합니다. syncData는 무엇을합니까? 그것은 어느 라이브러리의 일부입니까? –

관련 문제