【发布时间】:2018-06-24 13:54:36
【问题描述】:
我正在使用vue-fullcalendar,它是FullCalendar 库的包装器。我已经设置了日历并且工作正常,但是一旦我导入 Scheduler,它是提供 FullCalendar 功能以显示我在日历中的每个日期旁边得到“未定义”的资源的附加组件(你可以见图片)。
我在stackoverflow上找到了两篇关于这个问题的文章:
- jQuery fullCalendar displayed undefined on title - 我试图改变 moment.js 的顺序,但这无济于事。即使我根本不重视 moment.js,这个问题也会发生。
- How to edit Title in Fullcalendar - 还尝试恢复到旧版本的 FullCalendar,但没有成功。
这是我正在使用的代码:
<template>
<div>
<full-calendar
ref="calendar"
:events="events"
:config="config"
>
</full-calendar>
</div>
</template>
<script>
import * as moment from 'moment'
import {FullCalendar} from 'vue-full-calendar'
import 'fullcalendar/dist/fullcalendar.min.css'
import 'fullcalendar-scheduler'
import "fullcalendar-scheduler/dist/scheduler.min.css"
export default {
data() {
return {
config: {},
events: [
{
id: 1,
title: 'Title',
start: moment().add(2, 'd').add(2, 'h'),
end: moment().add(2, 'd').add(4, 'h'),
resourceId: 'a'
}
]
}
},
methods: {},
components: {
FullCalendar
}
}
</script>
【问题讨论】:
-
您需要 jQuery 和 momentJS,以及这些工具的正确版本,如 fullcalendar.io/support 。检查 vue 是否没有为您自动导入某些内容。查看浏览器的网络选项卡,看看其中是否有任何被多次加载,这是导致此问题的常见原因
-
我设法找出为什么会这样。执行时:
npm install fullcalendar-schedulenpm add node-modules 在 fullcalendar-schedule 里面,里面还有一个 fullcalendar。因此,项目中似乎有 2 个完整的日历。当我从 fullcalendar-schedule 中手动删除 fullcalendar 时,一切正常。你知道为什么会这样吗? -
fullcalendar-scheduler 是 fullcalendar 的附加组件,但它需要 fullcalendar 才能运行。真的,我以为它只是将另一个 fullcalendar 包作为依赖项,但也许它可以独立使用,或者可能有人在创建包时犯了错误,如果不询问包的维护者就很难知道。无论如何,我想您可以删除基本的 fullcalendar 包并仅使用调度程序包(无需手动删除位!)。
-
@DiegoArmandoMaradona 感谢您指出这一点,解决了它!
标签: javascript vue.js fullcalendar fullcalendar-scheduler