Stuck at deleting parent pushed key by value/child

2019-01-29 07:33发布

I want to delete a parent pushed key by value/childkey:

export class FaqsPage {
  qS: Observable<any[]>;
  ques = '';
  ans = '';

constructor(private db: AngularFireDatabase) {}
ionViewDidLoad() { this.qS = this.db.list('table/faq').valueChanges(); }

removeItem(id){this.db.list('table/faq').remove(id);}

removeItem() deleting the whole all pushed keys. No wonder because i couldn't get the parent key

//faq.html
<ion-list>
    <ion-item-sliding *ngFor="let el of qS | async">
      <ion-item>
        <b>{{ el.Q }}</b><br>{{ el.A }}
      </ion-item>
      <ion-item-options side="right">
        <button ion-button color="red" icon-only (click)="removeItem(el.key)"><ion-icon name="trash"></ion-icon></button>
      </ion-item-options>
    </ion-item-sliding>
  </ion-list>

el.key doesn't get the the key (e.g. Kzwv8d_i-0QZuf2NT8Z) because of valueChanges() and i have no idea how to do it within current iteration.

enter image description here

1条回答
贼婆χ
2楼-- · 2019-01-29 07:51

I hope you are using angularfire2

this.qS = this.db.list('table/faq').snapshotChanges().map(changes => {
  return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});

this will return the qS with key

查看更多
登录 后发表回答