我想以表格格式收集地址表中的元素,但不可能。这就是我在控制台中得到的
{…}
"-LsMm5EeM0DavWwNweBc": Object { adresse: "njkbj", commune: "Marcory", nom: "jjbjkb,", … }
"-LsMmBCOHZzkVL_LUwiQ": Object { adresse: "bjb", commune: "Marcory", nom: "bjhbhjh", … }
<prototype>: Object { … }
服务页面
adresses: Adresse [] = [];
adresseSubject = new Subject<Adresse[]>();
constructor() { }
emitAdresse(){
this.adresseSubject.next(this.adresses);
}
getAdresse(){
firebase.database().ref('adresse/' + firebase.auth().currentUser.uid )
.on('value', (data)=>{
this.adresses = data.val() ? data.val() : [];
console.log();
this.emitAdresse();
});
}
第ts页的页面
adresses : Adresse[];
adresseSubscription: Subscription;
constructor(private adresseService: AdresseService, private router: Router) {}
ngOnInit(){
this.adresseSubscription = this.adresseService.adresseSubject.subscribe(
(adresses: Adresse[]) => {
this.adresses = adresses;
}
);
this.adresseService.getAdresse();
this.adresseService.emitAdresse();
}
谢谢
您得到的是一个对象,而不是数组。因此,您可以选择keyvalue
像其他答案一样使用管道(进行较小的修正),或者根据响应实际创建数组。
这里使用keyvalue
:
<ul>
<li *ngFor="let item of data | keyvalue">
{{ item.value.adresse }}
</li>
</ul>
或者,然后根据响应创建一个数组:
adressArray = [];
getAdresse(){
firebase.database().ref('adresse/' + firebase.auth().currentUser.uid )
.on('value', (data) => {
for (let key in data.val()) {
this.adressArray.push({key, ...data.val()[key]})
}
});
}
这样,您将得到一个对象数组,每个对象看起来像:
{"key":"-LsMm5EeM0DavWwNweBc","adresse":"njkbj","commune":"Marcory","nom":"jjbjkb"}
然后可以像这样迭代:
<ul>
<li *ngFor="let item of adressArray">
{{item.adresse}}
</li>
</ul>
这是带有两个选项的STACKBLITZ:DEMO
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句