我使用Ionic爲我的應用程序提供與Firebase的連接來提取數據。我在工廠創建了一個承諾,將數據拉下來,並認爲它應該在屏幕上顯示數據,但在我觸摸屏幕之前我什麼也沒有得到。來自ES6承諾的數據在頁面上不顯示,直到我點擊它?
我沒有得到任何錯誤,數據確實來了。
廠:
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)
});
});
}
調用工廠:
Office.all().then(function (data) {
console.log(data);
$scope.officeList = data;
});
我覺得我打電話是錯誤的,否則有一個離子的方法,我似乎無法找到。
一旦完成請求,我將如何能夠呈現數據?
在此先感謝
討論了很多次。 Promise回調是在Angular的範圍之外執行的,所以*髒檢查*不起作用,綁定不會更新。在分配數據後,只需使用'$ scope。$ apply();'$ scope.officeList = data;' –
謝謝。不知道爲什麼我在查找時沒有遇到它:/。希望能夠在一段時間內改變本機的反應,希望它會更乾淨。 – SmiffyKmc