Javascript 带*NGV5的接入阵列

Javascript 带*NGV5的接入阵列,javascript,arrays,angular,object,ngfor,Javascript,Arrays,Angular,Object,Ngfor,我在Firebase中有一些JSON数据,我正在尝试在Angular v5中使用*ngFor循环遍历这些数据 该对象如下所示: { "events": [ { "Event-time": "09:30", "Event-name": "Morning Session", "Location": "Alexander Room", "Speaker-image": "https:

我在Firebase中有一些JSON数据,我正在尝试在Angular v5中使用*ngFor循环遍历这些数据

该对象如下所示:

{
    "events": [
        {
            "Event-time": "09:30",
            "Event-name": "Morning Session",
            "Location": "Alexander Room",
            "Speaker-image": "https://z4e3q7e996-flywheel.netdna-ssl.com/wp-content/uploads/2017/07/TeamPhotosIan.png",
            "Speaker-name": "Ian Broom",
            "Speaker-title": "CEO & Founder"
        },
        {
            "Event-time": "11:30",
            "Event-name": "Morning Session II",
            "Location": "Coffee Room",
            "Speaker-image": "https://z4e3q7e996-flywheel.netdna-ssl.com/wp-content/uploads/2012/07/TeamPhotosben.png",
            "Speaker-name": "Ben Wynne-Simmons",
            "Speaker-title": "Head of Growth & Marketing"
        }
   ]
}
这是我的events-list.component:

export class EventsListComponent implements OnInit {
    eventsObservable: Observable<any[]>;

    constructor(private db: AngularFireDatabase) { }

    ngOnInit() {
        this.eventsObservable = this.getEvents('/events');
    }

    getEvents(listPath): Observable<any[]> {
        return this.db.list(listPath).valueChanges();
    }
}
导出类EventsListComponent实现OnInit{
事件可观察:可观察;
构造函数(私有数据库:AngularFireDatabase){}
恩戈尼尼特(){
this.eventsObservable=this.getEvents('/events');
}
getEvents(listPath):可观察{
返回这个.db.list(listPath).valueChanges();
}
}
我试着这样循环:

<ul>
    <li *ngFor="let event of eventsObservable | async">
        <p>{{event.Event-name}}</p>
    </li>
</ul>
    {{event.event name}

打印出来的是NaN

我不知道如何访问和显示数据


请帮忙!谢谢

您需要访问EventsBServable对象中的数组events

<div *ngFor="let event of eventsObservable.events | async">
        <p>{{event.Event-name}}</p>
 </div>

{{event.event name}


问题在于访问包含符号的字段
-

它被解释为一个数学减法(因为event.event和name都不是数字,
event.event-name
给出了
NaN
(NotANumber)

要访问名称中带有特殊字符的字段,必须使用括号表示法:

<p>{{event["Event-name"]}}</p>
{{event[“event name”]}

另外,正如另一个答案所告诉的,你必须直接在数组上迭代。我不太清楚你是如何在你的答案中得到你的可观测值的。如果你从大对象中得到一个可观测值,那么你应该
。将你的可观测值映射到它的
事件
字段


这将为您提供另一个可观察的,您应该重复后者。

谢谢您的回答,但不幸的是,这不起作用。当然!!!我怎么可能看不到这一点?非常感谢您,它工作得非常好!为了澄清,EventsAbservable保持原样。也感谢您的澄清,我不是Firebase用户。很高兴它可以rks现在!我愿意接受改进代码的建议。非常感谢您的帮助!