2016-07-04 10 views
1

Ich mache eine AngularJS App, die Daten aus der Firebase Cloud holt. Die Daten werden auf der Seite angezeigt, aber wenn ich meinen Controller debugge, wird eine leere Liste von Artikeln angezeigt. Warum wird meine Variable beim Debuggen als leer angezeigt? HierAngular Debugging mit Firebug

ist der Code meines Controller:

appMainModule.controller('GetCtrl', ['$scope', '$firebaseArray', function ($scope, $firebaseArray) { 
    var firebaseObj = new Firebase("URL") 
    debugger; 
    //var sync = $firebaseArray(firebaseObj); 
    //$scope.articles = sync.$asArray(); 
    $scope.articles = $firebaseArray(firebaseObj); 

    var firebaseObj1 = new Firebase("URL"); 

    $scope.articles1 = $firebaseArray(firebaseObj1.orderByChild("Month").equalTo("Apr-2016")); 
    var query=$scope.articles1 
    var num = query.length; 
}]); 

Und hier ist mein HTML-Code:

<div class="content" style="height: 380px; overflow: auto;"> 
    <table class="table"> 
    <thead> 
     <tr> 
     <th>Incident Name</th> 
     <th>Category</th> 
     <th>Month</th> 
     <th>Total</th> 
     </tr> 
    </thead> 
    <tbody ng-repeat="article in articles1 "> 
     <tr> 
     <td><p>{{article.IncidentName}}</p></td> 
     <td><p>{{article.CategoryParent}}</p></td> 
     <td><p>{{article.Month}}</p></td> 
     <td><p>{{article.Total}}</p></td> 
     </tr> 
    </tbody> 
</div>  

Innerhalb der HTML-Seite articles1 die Daten bereitstellt, aber in der Steuerung wird gezeigt, als leer nach dem Abrufen der Daten.

Antwort

0

Ich löste mein Problem, ich erwartete meine Daten so früh wie es war asyncrounous call to firebase. also hier ist die Methode, wenn Firebase ein Versprechen für Daten

$scope.articles1.$loaded(function(data){ 
// do here with data,what you want 
}) 
zurückgibt