我知道 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);
});
}
}