2016-12-21 2 views
0

Ich habe einen Code, der einen einfachen JSON-Array retrives und ich möchte nur SchleifeWie die json Feldlänge von Firebase Datenbank erhalten

var ref = new Firebase("firebase object path"); 
var sync = $firebase(ref); 
var result = sync.$asArray(); 

und dann kann ich nicht die json Feldlänge mit „Ergebnis erhalten .length "es gibt nur ein Ergebnis von 0 Länge aber nicht den genauen Wert kann mir jemand helfen ...?

+0

Welche Version von AngularFire verwenden Sie hier? Es sieht aus wie eine alte Alpha-Version von vor Jahren. Bitte, bitte aktualisiere etwas Modernes. – Kato

Antwort

0

Wahrscheinlich, weil es noch nicht geladen ist. Sieht aus wie Sie eine alte Verison von angularFire als $asArray verwenden siehe veraltet: When does one use $asArray vs $asObject in Angularfire?, https://github.com/firebase/angularfire/blob/master/docs/migration/09X-to-1XX.md

Sobald Sie aktualisiert haben (wenn Sie können)

$firebaseArray(ref).$loaded().then(function(data){ 
    console.log(data.length) 
}); 

Ich kann nicht scheinen, um die Dokumente zu finden denn wenn $asArray um war aber dort die zweite Verbindung Blick durch ich glaube, Sie es wie dies erreicht werden kann:

sync.$asArray().$loaded().then(function(array) { 
    console.log(array.length); 
}); 

Mit einer Uhr:

$scope.data = []; 
sync.$asArray().$loaded().then(function (array) { 
    $scope.data = array; 
}); 
$scope.$watch('data', function (newValue, oldValue) { 
    console.log($scope.data.length); 
}); 
+0

vielen dank für raplay ... aber wenn ich eine Änderung in meinem Firebase-Objekt mache, aktualisiert es nicht den Längenwert oder ich muss meine Seite aktualisieren, um die Änderung zu sehen, was soll ich tun ....? –

+0

Sie müssen ein Wertänderungsereignis verkabeln: https://firebase.google.com/docs/database/web/read-and-write#listen_for_value_events oder verdrahten Sie eine '. $ Watch' –

+0

ist dies die richtige Art der Verwendung. $ watch lo hören die Array-Länge ändern .... sync. $ asArray(). $ loaded(). dann (Funktion (Array) { $ scope.len = array.length; }); $ scope. $ Watch ($ scope.len, function (newValue, oldValue) { $ scope.len = $ scope.len; }); –

Verwandte Themen