如何获得这种类型的obj [{…},{…}]而不是此[]数组?

时间:2018-09-17 01:08:18

标签: arrays angular object

我的目标是使用ng-fullcalendar显示我从firestore获得的事件。 但是问题是,它没有出现在日历中。

如果使用了模拟数据,它可以工作,但是对于我从firestore获得的数据却不能

这是包含模拟数据的工作日历

功能

  public getEvents(): Observable<any> {
    const dateObj = new Date();
    const yearMonth = dateObj.getUTCFullYear() + '-' + (dateObj.getUTCMonth() + 1);
    let data: any = [{
        title: 'namee',
        start: '2018-09-19'
    },
    {
      title: 'STI night',
      start: '2018-09-18'
    }
  ];
    console.log(data);
    return of(data);
}

console.log中显示的内容

enter image description here

以及如何通过事件初始化日历

  ngOnInit() {
    this.getEvents().subscribe(eventData => {
      console.log('Obs', eventData);
      this.calendarOptions = {
        editable: true,
        eventLimit: false,
        header: {
          left: 'prev,next today',
          center: 'title',
          right: 'month,agendaWeek,agendaDay,listMonth'
        },
          events: eventData
      };    
    });

  }

result

可观察到的日志

enter image description here

但是当我执行此操作时,该功能会从Firestore获取数据

  getEventsCollection(): Observable<any>{
    this.eventService.getEventsCollection().subscribe(eventCollection => {
      eventCollection.forEach(event => {
        this.fullCalendarEvent = {
          title: event.event_name,
          start: event.event_date
        }        
        this.eventsArray.push(this.fullCalendarEvent);
      })

    });
     console.log( this.eventsArray  ); 
     return of(this.eventsArray);
  }

哪个记录下来

enter image description here

当我替换功能时

  ngOnInit() {
    this.getEventsCollection().subscribe(eventData => {
      console.log('Obs', eventData);
      this.calendarOptions = {
        editable: true,
        eventLimit: false,
        header: {
          left: 'prev,next today',
          center: 'title',
          right: 'month,agendaWeek,agendaDay,listMonth'
        },
          events: eventData
      };    
    });

  }

enter image description here

但是它没有显示在日历中

enter image description here

Maaaan,我的头很痛。关于如何显示它们的任何提示将不胜感激!

更新

现在我明白了,

模拟数据是此[{…},{…}](可能是对象)

而我的是[]数组

有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

一直都是生命周期的钩子!

当我把初始化日历放到辅导员voila中时,它起作用了!