Angular 2 Array Subject .next()不调用另一个组件的观察者

时间:2016-11-04 22:09:36

标签: javascript angularjs angular firebase rxjs

我使用firebase作为我的后端。

在data.service.ts中,我创建了一个Subject数组,它将由app init上的firebase观察者填充:

private orders = new Subject<any>();
orders$ = this.orders.asObservable();

firebase.database().ref(this.fbDataPath).on('child_added', (childSnapshot) => {
  this.orders.next(
    {
      key: childSnapshot.key,
      name: childSnapshot.val().name,
      items: childSnapshot.val().items
    }
  )
})

然后,我使用DataService提供一个单独的目录组件,并订阅其可观察的订单:

DataService.orders$.subscribe(
  order => {
    console.log('subscribe hit')
  })

我似乎无法让侦听器组件在下一个触发器上触发。我为布尔值isLoggedIn做了这个工作,我必须在这个场景中遗漏一些东西。谢谢!

1 个答案:

答案 0 :(得分:1)

可能是因为您在关闭中使用了this。从this

中删除this.orders.next()