我最近请求帮助为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();
}
}
};
1条答案
按热度按时间5vf7fwbs1#
看起来FullCalendar具有从函数中提取事件的能力,因此您应该能够在初始化部分中使用类似getEvents函数的内容(
events: viewModel.getEvents
)。然后,在绑定的更新部分,您只需调用日历的refetchEvents
方法,它将使用函数返回的新值进行刷新。的值输入到函数中,并在那里输出正确的值。https://fullcalendar.io/docs/events-function