0

我正在使用标准的 AngularFire 集合查询。然而,项目要求规定,我们不是直接在 HTML 中显式绑定 firestore 节点和值(如下面的第一个 HTML 片段所示),而是绑定返回的键和值,以便在 Firestore 中添加任何新字段时,我不需要更新我的项目来显示这些项目。

有没有办法使用标准的 AngularFire 查询来绑定 HTML 中每个返回结果的键和值?

用户.component.ts

  getUsers(){
    this.usersCollection = this.afs.collection<User>('users');
    this.users = this.usersCollection.snapshotChanges().pipe(
      map(actions => actions.map(a => {
        const data = a.payload.doc.data() as User;
        const id = a.payload.doc.id;  
        return { id, ...data };
      }))
    );
  }

HTML

<ul>
    <li *ngFor="let user of users | async">
        <div>{{ user.name }}</div>
        <div>{{ user.dob }}</div>
        <div>{{ user.id }}</div>
    </li>
</ul>

期望的结果

<ul>
    <li *ngFor="">
        <div>{{key}} / {{ value }}</div>
    </li>
</ul>
4

1 回答 1

2

有一个管道称为| keyvalue(角度 6+)。所以你可以做的是:

<ul>
    <li *ngFor="let user of users | async">
        <div *ngFor="let userinfo of user | keyvalue">
          {{ userinfo.key}}: {{userinfo.value}}
        </div>
    </li>
</ul>
于 2019-02-27T09:04:55.453 回答