0
私は製品のリストを持っています。各製品にはid
とdescription
があります。productIdが異なる場合にイベントを上書きしないようにするにはどうすればよいですか?
<div *ngFor="let product of products">
<input type="text" [ngModel]="product.description" (ngModelChange)="onEdit($event, product.id)">
</div>
editStream: EventEmitter<any> = new EventEmitter();
ngOnInit() {
this.editStream
.debounceTime(1000)
.distinctUntilChanged()
.mergeMap(x => Observable.of(x))
.subscribe(x => {
// based on product id, update its description in the database
});
}
private onEdit(description: string, id: string) {
this.editStream.emit({ description, id });
}
私は1つの製品の説明を編集するときにはうまく動作します。私はproduct1
編集する場合
しかし、(時間間隔が1秒未満である)すぐの記述の説明をし、product2
を編集 '、唯一product2
の説明が更新されます。
product2
さんのイベントはproduct1
さんのイベントを上書きしているので、1か所だけ登録しています。
どうすればこの問題を解決できますか?ありがとう
フム、あなたは "製品ごとに観察可能な異なる" 何を意味していますか? –
各 'product'に対して1つの' editStream'があります。 –
それは、 'editStream'の特定の番号(製品番号に基づいて)を作成するスマートな方法はありますか? editStream配列を使用しますか? –