merci d'avoir lu cette question.Angulaire 2, mises à jour observables ajoutant un élément, mais ne supprimant pas
Quoi qu'il en soit, j'ai créé un service qui gère les listes d'éléments (qui ont un nom et un prix) Ce service renvoie un observable, auquel ma ListComponent s'abonne. Ce qui est bizarre, c'est que quand j'ajoute un item, l'abonnement fonctionne et la liste ListComponent est mise à jour, quand je supprime un item, l'abonnement ne fonctionne pas, il n'envoie aucune erreur.
ListComponent:
export class ListComponent {
listItems: ListItem[];
itemName: string;
itemPrice: number;
constructor(private listService: ListItemService){
this.listService.getItems().subscribe((res) => {
this.listItems=res;
},
(error)=>{
console.log(error);
})
}
public addNewItem(itemName:string,itemPrice:number):void{
this.listService.create(itemName,itemPrice);
}
public deleteItem(itemName:string){
this.listService.delete(itemName);
}
}
ListService:
@Injectable()
export class ListItemService {
private listItems:ListItem[] = [];
private listObservable: Observable<ListItem[]>;
constructor() {
this.listItems.push(new ListItem("item1",100));
this.listItems.push(new ListItem("item2",200));
this.listItems.push(new ListItem("item3",300));
this.listItems.push(new ListItem("item4",400));
this.listObservable = Observable.of(this.listItems);
}
getItems(): Observable<ListItem[]> {
return this.listObservable;
}
getItemById(name: String): Promise<ListItem> {
return new Promise((resolve) =>{
resolve(this.getListItemByName(name));
})
}
delete(name: String): Promise<ListItem[]> {
let item = new ListItem(name,0);
this.listItems = this.listItems.filter((item:ListItem)=>item.name !== name);
return new Promise((res)=>{
res(item);
})
}
create(name: string, price:number): Promise<ListItem> {
let item: ListItem = new ListItem(name,price);
this.listItems.push(item);
return new Promise((res)=>{
res(item);
})
}}
Merci pour la lecture (et nous espérons aider)
S'il vous plaît Upvote et accepter la réponse si elle a résolu votre problème. Merci! – dlsso