我從離子存儲獲取一些數據並希望在視圖中顯示。問題是,我從存儲中獲取對象,將它們推入數組中,並且想要將它們顯示在視圖中,但由於存儲器延遲1秒,視圖不顯示值。角度4視圖不會更新後延遲值
這裏即時得到的對象和陣列中的推動:
this.tickets$.subscribe(tickets => {
this.tickets = tickets.toList()
this.tickets.forEach(ticket =>{
let bonusStakeStr = "bonusStake-"+ticket.ticketId;
this.storage.get(bonusStakeStr).then(response=> {
this.ticketStakes = [];
if (response) {
let obj = {};
obj[ticket.ticketId] = response ;
this.ticketStakes.push(obj);
}
}
)
});
那吸氣劑爲陣列:
getTicketStakesFromStorage(){
return this.ticketStakes;
}
這是我的視圖的控制器,I設置數組它在構造:
this.ticketStakes = this.bonusService.getTicketStakesFromStorage();
而得到數組的值用於視圖:
getBonusOdd(ticketId){
if(this.ticketStakes.length<=0)console.log("array is empty")
if(this.ticketStakes.length>0)console.log("array is not empty")
this.ticketStakes.forEach(ticketStake => {
if(ticketStake.hasOwnProperty(ticketId)){
let odd = this.myCurrency(ticketStake[ticketId]);
console.log(odd)
return odd;
}
})
}
,並在提出這樣的觀點:
<ion-col width-50 left>{{getBonusOdd(ticket.ticketId)}}</ion-col>
首先是部分"if(this.ticketStakes.length<=0)console.log("array is empty")"
打印出一次,然後"if(this.ticketStakes.length>0)console.log("array is not empty")"
打印出來..所以有一個1秒的延遲我承擔,但查看犯規認識到, .. 任何想法將大大appriciated!
時你訂閱this.tickets $ .subscribe()...? – JayDeeEss
在服務的構造函數 –
多數民衆贊成在這個問題上,你正在訪問票數組的價值之前,它從subscribe()....返回值你可以返回一個observable在你的服務數組的getter(返回這個。 ticketStakes.asObservable()),然後可以在您的組件中訂閱它或使用異步管道 – JayDeeEss