gpt4 book ai didi

javascript - 在模板 ANGULAR5 中显示数据(对象)的最佳方式

转载 作者:行者123 更新时间:2023-11-30 14:49:41 26 4
gpt4 key购买 nike

对于这种情况,在模板 Angular5 中显示数据的最佳方式是什么:

我在此处从 Firestore (=firebase) 加载数据:

 ngOnInit() {
this.user = this.authService.afAuth.authState;
this.user.subscribe((auth) => {
if (auth) {
this.itemService.getTestMembers(auth.uid).subscribe(testMembers => {
this.testMembers = testMembers;
});
}
});

Firestore 响应是:[{"email":"john@gmail.com","name":"John"}]

模板中第一个显示名字的方案:

<span>{{testMembers[0]?.name}}</span>

有效,显示名称但是我有一个错误:TypeError: _co.testMembers is undefined


代码中显示名字的第二种方案:

userName: string;
ngOnInit() {
this.user = this.authService.afAuth.authState;
this.user.subscribe((auth) => {
if (auth) {
this.itemService.getTestMembers(auth.uid).subscribe(testMembers => {
this.testMembers = testMembers;
**this.userName = (JSON.stringify(testMembers[0].name)); <-- here**
});
}
});

什么是最好的解决方案,或者也许还有其他解决方案。谢谢

最佳答案

服务响应可能会有延迟,因为它是异步的,因此您应该在访问对象之前添加一个 if 条件,如下所示

this.user.subscribe((auth) => {
if (auth) {
this.itemService.getTestMembers(auth.uid).subscribe(testMembers => {
this.testMembers = testMembers;
if(testMembers.length > 0 ) {//////////add this
this.userName = (JSON.stringify(testMembers[0].name));
}
});
}
});

关于javascript - 在模板 ANGULAR5 中显示数据(对象)的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48352635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com