angular - 无法使用 Firebase 和 Angular 显示数据
问题描述
app.comoponent.ts
export class AppComponent {
Angular: any[] = [];
constructor(db: AngularFireDatabase){
db.list('/Angular').valueChanges()
.subscribe(Angular =>{
this.Angular = Angular;
console.log(this.Angular);
})
}
-----------
app.component.html
<ul>
<li *ngFor= "let course of Angular">
{{course.$values}}
</li>
</ul>
无法在 Templet 中查看数据。控制台正在显示来自 firebase 的数组中的值。["course1", "course2", "course3"] 展开时显示键值对,但不显示 $value 来获取它。不确定它是如何工作的。我对这个领域相当陌生。
解决方案
尝试:
app.comoponent.ts
export class AppComponent {
Angular: Observable<any[]>;
constructor(db: AngularFireDatabase){
this.Angular = db.list('/Angular').valueChanges();
}
app.component.html
<ul *ngIf="Angular">
<li *ngFor= "let course of Angular | async">
{{course}}
</li>
</ul>
如果您使用异步管道,那么在您的情况下,当 observable 发出一个值时,更改检测将始终启动Angular
。
推荐阅读
- openid-connect - OpenIdDict(代码流) - 处理访问令牌过期
- php - 如何使我的登录页面易受 SQL 注入攻击?
- javascript - chart.js 从数据集标签修改样式
- mysql - mysql触发信息从一对多关系插入和更新触发器
- javascript - 根据属性值从对象数组中获取值
- actionscript-3 - AS3计时器在游戏中工作
- python - 通过字段连接两个表时,Python不返回数据
- java - 如何正确返回基于用户 ID 显示数据的数组列表?
- python - TypeError:“str”对象不能解释为整数。创建一个新的 .csv 文件。键错误:'Id'
- sql - Oracle nvl 功能未按预期工作