Как получить этот тип объекта obj [{…}, {…}], а не этот массив []? - PullRequest
0 голосов
/ 17 сентября 2018

Моя цель - отображать события, которые я получаю из магазина, используя ng-fullcalendar.Но проблема в том, что он не отображается в календаре.

Если используются фиктивные данные, это работает, но на данных, которые я получил из 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

Но когда я делаю это, функция, которая получает данные из хранилища

  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

Маааан, у меня болит голова.Любые советы о том, как их отображать, будут высоко оценены!

ОБНОВЛЕНИЕ

Теперь я вижу разницу,

фиктивные данные таковы [{…}, {…}] (А что может быть объектом)

, в то время как мой - [] массив

Кто-нибудь знает, как я могу это сделать?

1 Ответ

0 голосов
/ 17 сентября 2018

Это был жизненный цикл с самого начала!

Когда я положил календарь инициализации в конструктор, вуаля, это сработало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...