この質問を読んでいただきありがとうございます。角2、Observableがアイテムを追加していますが、削除していません。
とにかく、私はアイテム(名前と価格を持つ)のリストを扱うサービスを作成しました。このサービスは、ListComponentが購読しているオブザーバブルを返します。
私はアイテムを追加すると、サブスクリプションが動作し、ListComponentリストが更新されます。アイテムを削除すると、サブスクリプションは機能せず、エラーは発生しません。
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);
})
}}
おかげ
それはあなたの問題を解決した場合の答えをupvoteと受け入れてください:あなたが代わりにやるべきことは何
はこのようなものです。ありがとう! – dlsso