有没有一种方法可以使用自定义按钮在Fullcalendar v4中实现事件过滤器?

时间:2019-05-12 17:56:53

标签: javascript knockout.js fullcalendar fullcalendar-4

我正在从Bootstrap DateTimePicker迁移到Fullcalendar v4,我的问题是过滤事件。

有了DateTimePicker,我有更多的自由来处理日历上显示的事件(似乎Fullcalendar v3比v4拥有更多的自由)。

我找不到将事件从数组放置到屏幕的方法。到目前为止,这就是我的代码的样子

            var calendar = new FullCalendar.Calendar(element, {
                plugins: [ 'dayGrid', 'timeGrid', 'list', 'interaction', 'bootstrap' ],
                themeSystem: 'bootstrap',
                events : function(info, successCallback, failureCallback) {
                    console.log('events');
                    self.eventsLoadingRequest(true);
                    calendarService.getEvents(moment(info.start), moment(info.end)).then(
                        function(result) {
                            ko.utils.arrayPushAll(self.events, self.parseByType(result));
                            self.eventsLoadingRequest(false);
                            successCallback(ko.utils.arrayMap(self.events(), function(item) { return item.serialize() }));
                        },
                        function(error) {   
                        }
                    );
                },
                customButtons: {
                    filterEvents: {
                        text: 'Events',
                        click: function() {
                            self.eventsFilter(true, false);
                        }
                    },
                    filterAll: {
                        text: 'All',
                        click: function() {
                            self.eventsFilter(true, true);
                        }
                    },
                    filterGoals: {
                        text: 'Goals',
                        click: function() {
                            self.eventsFilter(false, true);
                        }
                    }
                },
                header: {
                    left: 'title',
                    right: 'prev,today,next dayGridMonth,timeGridWeek,timeGridDay,listWeek, filterEvents,filterAll,filterGoals'
                },
                navLinks: true,
                editable: true,
                eventLimit: true
            });

并且eventsFilter函数将两个数组合并为一个。可以手动调用events : function(info, successCallback, failureCallback)吗?

我想避免使用多个流并重新加载事件以应用过滤器。

0 个答案:

没有答案