【问题标题】:FullCalendar adds "undefined" next to each dateFullCalendar 在每个日期旁边添加“未定义”
【发布时间】:2018-06-24 13:54:36
【问题描述】:

我正在使用vue-fullcalendar,它是FullCalendar 库的包装器。我已经设置了日历并且工作正常,但是一旦我导入 Scheduler,它是提供 FullCalendar 功能以显示我在日历中的每个日期旁边得到“未定义”的资源的附加组件(你可以见图片)。

我在stackoverflow上找到了两篇关于这个问题的文章:

  1. jQuery fullCalendar displayed undefined on title - 我试图改变 moment.js 的顺序,但这无济于事。即使我根本不重视 moment.js,这个问题也会发生。
  2. 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-schedule npm add node-modules 在 fullcalendar-schedule 里面,里面还有一个 fullcalendar。因此,项目中似乎有 2 个完整的日历。当我从 fullcalendar-schedule 中手动删除 fullcalendar 时,一切正常。你知道为什么会这样吗?
  • fullcalendar-scheduler 是 fullcalendar 的附加组件,但它需要 fullcalendar 才能运行。真的,我以为它只是将另一个 fullcalendar 包作为依赖项,但也许它可以独立使用,或者可能有人在创建包时犯了错误,如果不询问包的维护者就很难知道。无论如何,我想您可以删除基本的 fullcalendar 包并仅使用调度程序包(无需手动删除位!)。
  • @DiegoArmandoMaradona 感谢您指出这一点,解决了它!

标签: javascript vue.js fullcalendar fullcalendar-scheduler


【解决方案1】:

将此添加到您的 FullCalendar 配置中,未定义将从标题中删除

viewRender: function(view, element) {
              $('.fc-center')[0].children[0].innerText = view.title.replace(new RegExp("undefined", 'g'), "");
          }

如果你用vue最好从'jquery'导入* as $;

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多