Ich benutze Ionic für meine App mit einer Verbindung zu Firebase, um Daten zu ziehen. Ich habe ein Versprechen in einer Fabrik erstellt, Daten herunter zu ziehen und dachte, dass es die Daten auf dem Bildschirm wiedergeben sollte, sobald es fertig ist, aber ich bekomme nichts, bis ich den Bildschirm berühre.Daten von ES6 Versprechen wird nicht auf der Seite gerendert, bis ich darauf klicke?
Ich bekomme keinen Fehler und die Daten kommen tatsächlich.
Factory:
all: function() {
return new Promise ((resolve, reject) => {
firebase.database().ref('desks').once('value').then(snapshot => {
let desks = []
snapshot.forEach((child) => {
desks.push(child.val());
});
resolve(desks)
});
});
}
Aufruf der Fabrik:
Office.all().then(function (data) {
console.log(data);
$scope.officeList = data;
});
Ich glaube, ich bin es falsch anrufen oder aber es ist eine ionische Methode, die ich nicht zu finden scheinen.
Wie kann ich die Daten rendern lassen, wenn die Anfrage abgeschlossen ist?
Vielen Dank im Voraus
Diskutiert so viele Male. Promise-Callbacks werden außerhalb des Angular-Bereichs ausgeführt, so dass * dirty checking * nicht funktioniert und Bindungen nicht aktualisiert werden. Verwenden Sie einfach '$ scope. $ Apply();' nach dem Zuweisen von Daten '$ scope.officeList = data;' –
Danke, ich werde es versuchen. Ich bin mir nicht sicher, warum ich bei der Suche nicht darauf gestoßen bin: /. In der Hoffnung, die Reaktion ein wenig zu verändern, hoffentlich wird es sauberer. – SmiffyKmc