2016-06-03 5 views
0

Ich möchte meine Web-App-Benutzer bemerken, wenn ein neuer Post angekommen ist, ohne dass sie die Seite aktualisieren müssen. Ich benutze Firebase und angularfire als Wrapper.AngularFire, wenn nur neue Post angekommen ist

Hier ist mein Code:

var query = Refs.getDeptRef("IT").orderByChild("timestamp").limitToLast(25);  
var talks = $firebaseArray(query); 
    talks.$watch(function (e) { 
       alert('new post arrived'); 
      }); 

Der obige Code funktioniert, wenn neue Post ankommt, aber wenn ich die Seite aktualisieren (oder das erste Mal Laden die Seite), der Alarm Pops-up hundertmal! Wie schaffe ich es nur die neuen Posts anzusehen, nachdem die Seite geladen wurde ?? Vielen Dank für Ihre Kommentare.

Antwort

0

können Sie $loaded() verwenden:

Gibt ein Versprechen, das, wenn die Daten der ursprünglichen Anordnung aufgelöst hat aus der Datenbank heruntergeladen. Das Versprechen verfällt in den $ FirebaseArray.

Verwenden Sie dann $watch, wenn die ursprünglichen Daten abgerufen wurden.

Zum Beispiel:

var query = Refs.getDeptRef("IT").orderByChild("timestamp").limitToLast(25); 

var talks = $firebaseArray(query); 

talks.$loaded().then(function(initialData) { 

    console.log(initialData); 

    talks.$watch(function(data) { 

    console.log(data); 
    }); 
}); 
Verwandte Themen