knockout.js FullCalendar v4的删除自定义绑定,取决于下拉选择

bksxznpy  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(121)

我最近请求帮助为FullCalendar V4创建一个knockout自定义绑定。现在我正在尝试使它依赖于一个下拉选择的值。我正在尝试让日历基于下拉选择绑定事件。请查看链接的pen。以下是我到目前为止为绑定所做的工作...

ko.bindingHandlers.fullCalendar = {
        init: function(element, valueAccessor) {
            var value = ko.utils.unwrapObservable(valueAccessor());
            console.log("value: ", value)
            var calendar = new FullCalendar.Calendar(element, {
                plugins: [ 'interaction', 'dayGrid', 'timeGrid' ],
                defaultView: 'dayGridMonth',
                defaultDate: '2019-06-07',
                header: {
                  left: 'prev,next today',
                  center: 'title',
                  right: 'dayGridMonth,timeGridWeek,timeGridDay'
                },
                //events: viewModel.array1()
                events: viewModel.selectedChoice(value)
            });
            calendar.render(); 
        },
        update: function(element, valueAccessor) {
            var value = ko.utils.unwrapObservable(valueAccessor());
            console.log(value)
            if (value === "array1"){
                events: viewModel.array1();
            } else {
                events: viewModel.array2();
            }
        }
};
5vf7fwbs

5vf7fwbs1#

看起来FullCalendar具有从函数中提取事件的能力,因此您应该能够在初始化部分中使用类似getEvents函数的内容(events: viewModel.getEvents)。然后,在绑定的更新部分,您只需调用日历的refetchEvents方法,它将使用函数返回的新值进行刷新。的值输入到函数中,并在那里输出正确的值。
https://fullcalendar.io/docs/events-function

相关问题