我的Firebase数据库中有一个Profile表,看起来像这样 polyfill
我要尝试的是从此表中为每个配置文件实例获取某些值,并将其在UI中列出。我发现了另一个堆栈溢出帖子,适用于他们的解决方案是这样的...
这是home.ts文件(这是我显示所有用户的位置)
import { Component } from '@angular/core';
import { NavController, ToastController, NavParams } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase, AngularFireObject } from 'angularfire2/database';
import { Profile } from '../../models/profile';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from'@angular/common/http';
import firebase from 'firebase';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
profiles:Observable<any>;
constructor(public http: HttpClient, private toast: ToastController, public afDatabase: AngularFireDatabase, private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
let profiles = this.afDatabase.list('profile').valueChanges();
}
}
然后在home.html文件中,我试图这样显示它。
<ion-list>
<ion-item *ngFor="let profile of profiles | async">
<p>{{profile.bandName}}</p>
<p>{{profile.bandHandle}}</p>
</ion-item>
</ion-list>
我得到0个错误,但绝对没有任何错误。 UI上没有显示任何值!这里有什么想法可能出什么问题?
答案 0 :(得分:2)
您正试图将值存储在块作用域变量profile
上。不能以这种方式在html中访问该变量。
export class HomePage {
public prolfies: any;
constructor(public http: HttpClient, private toast: ToastController, public afDatabase: AngularFireDatabase, private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
afDatabase.list('profile')
.valueChanges()
.subscribe((data) => {
this.profile = data;
});
}
}
答案 1 :(得分:0)
没有尝试过,但是我认为您必须订阅您的列表。
尝试:
let profiles = this.afDatabase.list('profile').valueChanges()
.subscribe(value => {
this.profiles = value;
})
如果它不起作用,可以在ngOnInit()中做到吗
ngOnInit(
console.log(this.profiles)
)
然后将您的结果粘贴到此处