【发布时间】:2018-07-27 09:36:03
【问题描述】:
我希望你们一切都好,所以我有一个小问题,我从 firebase 获取数据,我有一个包含数组的数组,我想在我的视图中显示它,但我不能,我会的编写我的代码并解释我以后想要实现的目标。
这是我数据库中的数据:
posts
--- 1
--- puslisher -- "Erick"
--- content : "Something is written here"
--- comments
--- 1
--- comment : "Yes"
--- commentator : "Patrick"
--- 2
--- comment : "I dont think so "
--- commentator : "Sarah"
--- 2
--- puslisher -- "Patrick"
--- content : "News here .."
--- comments
--- 1
--- comment : "Yes"
--- commentator : "Ines"
我在 app.component.ts 中获取数据:
export class AppComponent implements OnInit {
pubs:Observable<any[]>;
constructor(private db:AngularFireDatabase){
}
ngOnInit(){
this.pubs = this.getData('/posts');
}
getData(path):Observable<any[]>{
return this.db.list(path).valueChanges()
}
}
这是我的 HTML 代码:
<div *nfFor="let post of pubs | async ">
<p>publisher {{post.publisher}}</p>
<p>content : {{post.content}}</p>
<div>{{post.comments}}</div>
<ul>
<li *ngFor="let cmt of post.comments" >{{cmt.comment}}</li>
</ul>
</div>
但我的控制台出现错误:
ERROR TypeError: Cannot read property 'comment' of undefined
但是当我只写 {{cmt}} 而不是 {{cmt.comment}} 时,我会得到这样的结果:
publisher: Erick
content : Something is written here
,[object Object],[object Object]
-
- [object Object]
- [object Object]
publisher: Patrick
content : News here
,[object Object]
-
- [object Object]
这意味着我正在获取我的对象但第一个总是空的,我不知道为什么,我想显示我的评论文本。
我希望我能很好地解释我的问题,任何帮助将不胜感激。
【问题讨论】:
-
你能检查一下未定义的 cmt 是否有效吗?类似 cmt 的东西? cmt.comment : '没有数据'
-
您可以像这样
{{cmt | json}}使用 json 管道查看对象中的内容 -
Antoine : 我试过了,我猜我得到了正确的数据,例如我得到这个是为了 Patrick 的评论:{ "comment":"Yes","commentator": "Patrick" },你认为'"'引起了问题吗?
标签: javascript angular firebase firebase-realtime-database angular5