У меня возникла проблема при работе с Angular и Observable.
Я получил страницу Basket, подписывающуюся на Observable массива в BasketService, содержащего мои заказы клиентов.Когда я нажимаю на кнопку «Подтвердить», я очищаю свой массив ordersArray, но, несмотря на то, что моя страница корзины подписана на мою наблюдаемую, она не обновляется.
В моем BasketPage.ts
ngOnInit() {
this.nourritureSubscription = this.panierService.nourritureStore.subscribe((data) => {
if(data.length === 0) {
this.isNourriturePanierEmpty = true;
} else {
this.nourriturePanier = data;
console.log(data)
this.isNourriturePanierEmpty = false;
}
});
this.menuSubscription = this.panierService.menuStore.subscribe((data) => {
if(data.length === 0) {
this.isMenuPanierEmpty = true;
} else {
this.menuPanier = data
console.log(data)
this.isMenuPanierEmpty = false;
}
})
}
consumePanier(){
let commandeSucess : boolean;
this.panierService.consumePanier()
this.commandeEnvoyee();
}
async commandeEnvoyee() {
const alert = await this.alertCtrl.create({
header: 'Commande envoyée !',
message: 'Votre commande a été approuvée et enregistrée',
buttons: [
{
text: 'Valider',
role: 'cancel',
cssClass: 'primary',
handler: () => {
this.ngOnInit();
}
}
]
});
await alert.present();
}
Вmy BasketService.ts
nourritureArray: Nourriture[] = [];
menuArray: Menu[] = [];
nourritureStore = of(this.nourritureArray)
menuStore = of(this.menuArray)
consumePanier(){
let panierRef = [];
let user=JSON.parse(localStorage.getItem('user'));
panierRef.push({idUser: user.id})
Object.entries(this.nourritureArray).forEach(([key, value])=>{
panierRef.push({idNourriture: value.id, nameNourriture: value.name})
})
Object.entries(this.menuArray).forEach(([key, value])=>{
panierRef.push({idMenu: value.id, nameMenu: value.name})
})
let commande = JSON.parse(JSON.stringify(panierRef));
panierRef= [];
this.nourritureArray = [];
this.menuArray = [];
}
Кто-нибудь еще?
Подсказки: -При перезагрузке URL-адреса у меня есть обновленное хранилище (но я не могу принудительно перезагрузить с маршрутизатором, не знаюпочему ...) -Когда я обновляюсь с помощью ngOnInit, я получаю старое значение из наблюдаемого, даже если мой массив пуст ...