AngularFire2遍历对象数组

AngularFire2遍历对象数组,angular,firebase,angularfire,angularfire2,Angular,Firebase,Angularfire,Angularfire2,我有以下Firebase数据库结构: orders { $uid { // user UID order { // ... } } } 我试图通过这种方式获得所有订单: public getOrders() { this.db.list('/orders).subscribe(items => { items.forEach(item => { console.log(item); }) }) } 我的问题是,

我有以下Firebase数据库结构:

orders {
  $uid { // user UID
    order {
    // ...
    }
  }
}
我试图通过这种方式获得所有订单:

public getOrders() {
  this.db.list('/orders).subscribe(items => {
    items.forEach(item => {
      console.log(item);
    })
  })
}

我的问题是,我怎样才能得到所有的订单? 因为现在,我无法遍历

您可以将
Firebase数据库中的结果(
)保存在
变量中,然后在角度模板(HTML)中使用该变量

Firebase数据库: /命令/

组件的逻辑

databaseOrders;
public getOrders() {
  this.db.list('/orders).subscribe(items => {
    this.databaseOrders = items;
  })
}
<div *ngIf="databaseOrders" class="orders">
  <article *ngFor="let order of databaseOrders; let i = index"> 
    <span class="ordered-by">{{order[i].name}}<span> 
    <b class="order-value">{{order[i].value}}</b>
  </article>
</div>

组件的模板

databaseOrders;
public getOrders() {
  this.db.list('/orders).subscribe(items => {
    this.databaseOrders = items;
  })
}
<div *ngIf="databaseOrders" class="orders">
  <article *ngFor="let order of databaseOrders; let i = index"> 
    <span class="ordered-by">{{order[i].name}}<span> 
    <b class="order-value">{{order[i].value}}</b>
  </article>
</div>

{{order[i].name}
{{顺序[i].值}
您可以将
Firebase数据库中的结果(
)保存在
变量中,然后在角度模板(HTML)中使用该变量

Firebase数据库: /命令/

组件的逻辑

databaseOrders;
public getOrders() {
  this.db.list('/orders).subscribe(items => {
    this.databaseOrders = items;
  })
}
<div *ngIf="databaseOrders" class="orders">
  <article *ngFor="let order of databaseOrders; let i = index"> 
    <span class="ordered-by">{{order[i].name}}<span> 
    <b class="order-value">{{order[i].value}}</b>
  </article>
</div>

组件的模板

databaseOrders;
public getOrders() {
  this.db.list('/orders).subscribe(items => {
    this.databaseOrders = items;
  })
}
<div *ngIf="databaseOrders" class="orders">
  <article *ngFor="let order of databaseOrders; let i = index"> 
    <span class="ordered-by">{{order[i].name}}<span> 
    <b class="order-value">{{order[i].value}}</b>
  </article>
</div>

{{order[i].name}
{{顺序[i].值}

好的,最后我可以用以下方法解决它:

public getOrders() {
  this.db.list('/orders).subscribe(items => {
    items.forEach(item => {
      Object.keys(item).map(key=>item[key]).map(order => {
        console.log(order);
      })
    })
  })
}

因此,首先我们获取所有订单,然后使用
forEach
通过每个具有订单的对象进行迭代。然后,使用
Object.keys
我们可以访问每个用户的顺序。

好的,所以最后我可以用以下方式解决它:

public getOrders() {
  this.db.list('/orders).subscribe(items => {
    items.forEach(item => {
      Object.keys(item).map(key=>item[key]).map(order => {
        console.log(order);
      })
    })
  })
}

因此,首先我们获取所有订单,然后使用
forEach
通过每个具有订单的对象进行迭代。然后,使用
Object.keys
我们可以访问每个用户的顺序。

例如,如果我尝试执行
项[0]。length
输出当然是
未定义的
,因为只有
数组
,但它的子对象是没有
.length
属性的
对象。您有权,我尝试将每个对象转换为数组,但未成功:(例如,如果我尝试执行
项[0].length
输出是
未定义的
当然,因为只有
数组
,但它的子对象是
对象,它们没有
.length
属性。您有权,我已尝试将每个对象转换为数组,但未成功:(谢谢@Marian07,这很有用,但在这种情况下,我的目的是计算订单和访问每个订单的属性。那么,你知道我如何访问每个订单吗?请参阅AngularFire2
列表
:谢谢@Marian07,这很有用,但在这种情况下,我的目的是计算订单和访问每个订单的属性。那么,你知道吗知道如何访问每个订单吗?请参阅AngularFire2
列表