Angular 角度:从Firestore获取数据。在单击之前,HTML不会使用实时数据更新
我正在用Angular构建一个小型Web应用程序 我查询firestore数据库并返回数据。一旦我收到数据,我就必须显示它。但是,在我单击应用程序中的其他地方(或其他地方)之前,显示数据的应用程序区域不会刷新 我正在为数据使用一个可观察的对象,我有一个订阅服务器,当数据更新时会触发它(console.log)——但是UI不是 我尝试了Angular 角度:从Firestore获取数据。在单击之前,HTML不会使用实时数据更新,angular,firebase,google-cloud-firestore,Angular,Firebase,Google Cloud Firestore,我正在用Angular构建一个小型Web应用程序 我查询firestore数据库并返回数据。一旦我收到数据,我就必须显示它。但是,在我单击应用程序中的其他地方(或其他地方)之前,显示数据的应用程序区域不会刷新 我正在为数据使用一个可观察的对象,我有一个订阅服务器,当数据更新时会触发它(console.log)——但是UI不是 我尝试了ChangeDetectorRef和detectChanges,在数据准备好使用*ngIf 我有一个正确触发的订阅服务器方法 ngOnInit() { cons
ChangeDetectorRef
和detectChanges
,在数据准备好使用*ngIf
我有一个正确触发的订阅服务器方法
ngOnInit() {
console.log("inited component.");
obs$.subscribe(value => {
console.log("Data List Update: (" + value.length + ") items in our dataset");
})
}
在我的组件html文件中,我有:
<div *ngFor="let item of obs$ | async; trackBy: trackByFn">
<h2>{{item.name}}</h2>
</div>
{{item.name}
调用subscribe函数时,我应该会看到html列表立即填充,但在另一个事件刷新它之前,这种情况不会发生。我想你只是误解了它的工作原理 你需要分配你得到的值,这样html就知道里面有什么了。试试这个:
obs$.subscribe(value => {
this.items = value;
console.log("Data List Update: (" + value.length + ") items in our dataset");
})
<div *ngFor="let item of items">
<h2>{{item.name}}</h2>
</div>
obs$.subscribe(值=>{
这个项目=价值;
log(“数据列表更新:(“+value.length+”)数据集中的项”);
})
{{item.name}
我想你只是误解了它的工作原理
你需要分配你得到的值,这样html就知道里面有什么了。试试这个:
obs$.subscribe(value => {
this.items = value;
console.log("Data List Update: (" + value.length + ") items in our dataset");
})
<div *ngFor="let item of items">
<h2>{{item.name}}</h2>
</div>
obs$.subscribe(值=>{
这个项目=价值;
log(“数据列表更新:(“+value.length+”)数据集中的项”);
})
{{item.name}
由于问题不再可复制,将此标记为关闭主题。由于问题不再可复制,将此标记为关闭主题。