全日历 Vue JS 组件 - 添加事件
Full Calendar Vue JS Component - Adding Events
我在 Vue JS 中使用完整日历:https://fullcalendar.io/docs/vue
我似乎找不到使用 Full Calendar Vue JS 组件添加事件的方法。我看到示例执行此操作的唯一方法是获取日历的 API 并通过它创建事件。这似乎有点反vue。
来自文档的演示:
handleDateSelect(selectInfo) {
let title = prompt('Please enter a new title for your event')
let calendarApi = selectInfo.view.calendar
calendarApi.unselect() // clear date selection
if (title) {
calendarApi.addEvent({
id: createEventId(),
title,
start: selectInfo.startStr,
end: selectInfo.endStr,
allDay: selectInfo.allDay
})
}
}
我想知道,如上所示,是通过点击原生日历 API 在 Vue JS 完整日历上创建事件的唯一方法吗?没有办法将某种事件发送到组件中吗?
您真的不必回退到使用命令式实例 API。 Vue FullCalendar
组件公开了 events
作为您可以使用的选项的一部分。例如:
<template>
<FullCalendar :options="opts" />
<button @click="addNewEvent"></button>
</template>
在组件定义中,您可以使用 events
键以声明方式设置事件列表。每次,您需要 add/remove 事件只需修改作为选项对象一部分的 events
键。
export default {
data() {
return {
opts: {
plugins: [ /* Any addition plugins you need */ ],
initialView: 'dayGridMonth',
events: [
{ title: 'First Event', date: '2021-05-12' },
/* Few more initial events */
]
}
}
},
methods: {
addNewEvent() {
this.opts.events = [
...this.opts.events,
{ title: 'Another Event', date: '2021-05-13' }
];
}
}
}
我在 Vue JS 中使用完整日历:https://fullcalendar.io/docs/vue
我似乎找不到使用 Full Calendar Vue JS 组件添加事件的方法。我看到示例执行此操作的唯一方法是获取日历的 API 并通过它创建事件。这似乎有点反vue。
来自文档的演示:
handleDateSelect(selectInfo) {
let title = prompt('Please enter a new title for your event')
let calendarApi = selectInfo.view.calendar
calendarApi.unselect() // clear date selection
if (title) {
calendarApi.addEvent({
id: createEventId(),
title,
start: selectInfo.startStr,
end: selectInfo.endStr,
allDay: selectInfo.allDay
})
}
}
我想知道,如上所示,是通过点击原生日历 API 在 Vue JS 完整日历上创建事件的唯一方法吗?没有办法将某种事件发送到组件中吗?
您真的不必回退到使用命令式实例 API。 Vue FullCalendar
组件公开了 events
作为您可以使用的选项的一部分。例如:
<template>
<FullCalendar :options="opts" />
<button @click="addNewEvent"></button>
</template>
在组件定义中,您可以使用 events
键以声明方式设置事件列表。每次,您需要 add/remove 事件只需修改作为选项对象一部分的 events
键。
export default {
data() {
return {
opts: {
plugins: [ /* Any addition plugins you need */ ],
initialView: 'dayGridMonth',
events: [
{ title: 'First Event', date: '2021-05-12' },
/* Few more initial events */
]
}
}
},
methods: {
addNewEvent() {
this.opts.events = [
...this.opts.events,
{ title: 'Another Event', date: '2021-05-13' }
];
}
}
}