1

我知道 Angular 2 中有大量关于变更检测的信息,并且我一直在尽我所能来了解它。我认为我的问题可能与 Array 的可变性属性有关,但我不确定。所以我们有这些来自 Firebase 的“桶”,我将它们推入一个数组,然后将其传递给一个子组件。这一切都奏效了,数组很快就被填充了,但它需要几秒钟才能在页面上呈现。(但是,当我尝试添加一些 setIntervals 和 setTimeouts 时,它的工作速度要快得多,但除非有一个干净的解决方案,否则我宁愿不这样做。)有没有人足够了解幕后发生的事情简单地向我解释并帮助我吗?谢谢!

import { Component } from '@angular/core';
import { BucketService } from '../../services';

@Component({
  selector: 'home-page',
  template: `
    <header [title]="'Buckets'"></header>
    <bucketlist [buckets]="buckets"></bucketlist>
  `,
  styleUrls: ['./home.page.scss']
})
export class HomePage {
  buckets: Array<any> = [];
  constructor(public bks: BucketService) {
    bks.subscribe(bucket => {
      console.log('bucket pushed: ', bucket);
      this.buckets.push(bucket);
    });
  }
}
4

1 回答 1

0

请参阅此处的解决方案 #2:angular2 firebase realtime updates not working

“只需将定义放在 angular2 的类中,而不是放在外面,一切都按照我最初的假设开始工作。”

于 2016-11-08T22:44:27.837 回答