ng-fullcalendar нужно показывать только события с определенными идентификаторами в угловых - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать scheluder для моего углового приложения с помощью ng-fullcalendar.Я установил его без каких-либо проблем, но я хочу сделать только некоторые конкретные идентификаторы из моего event.service.Это мой NgOnInit:

 ngOnInit() {
     this.eventService.getEvents().subscribe(data => {
       console.log(data[0].id);
       this.calendarOptions = {
         editable: true,
         eventLimit: false,
         header: {
           left: 'prev,next today',
           center: 'title',
           right: 'agendaWeek,agendaDay'
         },
         defaultView: 'agendaWeek',
         events: data,
       };
     });
   }

Мой events.service выглядит так:

import { Inject, Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
@Injectable()
export class EventService {
    public getEvents(): Observable<any> {
        const dateObj = new Date();
        const yearMonth = dateObj.getUTCFullYear() + '-' + (dateObj.getUTCMonth() + 1);
        let data: any = [{
            id: 999,
            title: 'All Day Event',
            start: yearMonth + '-01'
        },
        {
            id: 998,
            title: 'Long Event',
            start: yearMonth + '-07',
            end: yearMonth + '-10'
        },
        {
            id: 999,
            title: 'Repeating Event',
            start: yearMonth + '-09T16:00:00'
        },
        {
            id: 998,
            title: 'Repeating Event',
            start: yearMonth + '-16T16:00:00'
        }
       ];
        return Observable.of(data);
    }
};

В текущей ситуации все эти события отображаются в моем представлении.Что мне нужно изменить в этом коде, чтобы показывать только события с идентификатором '999', например.

Спасибо тем, кто нашел время, чтобы помочь мне!

1 Ответ

1 голос
/ 21 марта 2019

Вы можете фильтровать, используя это: data.filter (ev => ev.id == '999');

Таким образом, ваш ngOnInit будет выглядеть так:

ngOnInit() {
 this.eventService.getEvents().subscribe(data => {
   console.log(data[0].id);
   this.calendarOptions = {
     editable: true,
     eventLimit: false,
     header: {
       left: 'prev,next today',
       center: 'title',
       right: 'agendaWeek,agendaDay'
     },
     defaultView: 'agendaWeek',
     events: data.filter( ev => ev.id == '999'),
   };
 });
   }

Вы также можете начать с пустого списка событий, а затем использовать метод для их вставки.

this._calendar.fullCalendar('renderEvents', #your Filtered events#, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...