Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js FullCalendar VueJS-更新日期范围_Vue.js_Fullcalendar - Fatal编程技术网

Vue.js FullCalendar VueJS-更新日期范围

Vue.js FullCalendar VueJS-更新日期范围,vue.js,fullcalendar,Vue.js,Fullcalendar,我使用官方版本,我想更新视图中显示的当前范围(DayGridMonth此处):1个月、2个月、3个月、自定义期间 根据“文档”,由于函数setOption()(),可以更新visibleRange属性,但它对我不起作用:该属性在组件中得到了很好的更新,但视图没有更新 我还试图手动更新状态,但没有结果 这是我的草稿函数来做这件事 updateCurrentDate: function () { const calendarApi = this.$refs.fullCalen

我使用官方版本,我想更新视图中显示的当前范围(DayGridMonth此处):1个月、2个月、3个月、自定义期间

根据“文档”,由于函数
setOption()
(),可以更新
visibleRange
属性,但它对我不起作用:该属性在组件中得到了很好的更新,但视图没有更新

我还试图手动更新状态,但没有结果

这是我的草稿函数来做这件事

    updateCurrentDate: function () {
        const calendarApi = this.$refs.fullCalendar.getApi();
        const date = new Date(calendarApi.getDate());
        let endRange;

        this.currentPeriodRange = calendarApi.state.dateProfile.activeRange;
        this.currentPeriodLabel = moment(date).format('MMMM YYYY');

        if (this.currentView === 'month') {
            endRange = moment(this.currentPeriodRange.start).add(2, 'month');
            this.currentPeriodRange.end = endRange.toDate();

          // Not working
          calendarApi.setOption('visibleRange', this.currentPeriodRange);

          // No one of these test work
          calendarApi.state.dateProfile.activeRange = this.currentPeriodRange; // 
          calendarApi.state.dateProfile.currentRange = this.currentPeriodRange;
          calendarApi.state.dateProfile.renderRange = this.currentPeriodRange;

        }

        if (this.currentPeriodRange.start !== this.currentPeriodRange.end) {
            this.currentPeriodLabel = this.currentPeriodLabel + ' - ' + endRange.format('MMMM YYYY');
        }

        return;
    },

感谢阅读和回答

在月视图中无法调整可见范围,它是一个固定的网格,始终显示整整一个月。我怀疑你的代码本身有什么问题,你只是试图让它做一些它不做的事情。如果指定“timeGrid”或“list”或“timeline”之类的视图,则代码更有可能工作。不幸的是,文档中没有提到这一点。我对你的回答感到非常难过哈哈!难道你不认为我可以用renderDates方法来围绕这个问题,它为这个视图渲染每个单元格吗?例如,通过在DOM中手动附加所有缺少的单元格?我很遗憾,这个VueJS组件的文档太少…它不是VueJS文档-visibleRange方法和文档适用于fullCalendar的所有风格,无论是原生JS、VueJS、,不管怎样,我认为你建议的方法不会起作用-fullCalendar的内部渲染引擎不会知道你在回调期间手动添加的日期/时间段,也不会知道在那里放置事件,即使这些事件与创建的日期匹配。如果您真的想增强“月”视图,那么您必须创建一个-可能是复制月视图代码,然后对其进行更改。但那真的是一项相当大的工作。而fullCalendar 5即将发布,因此您必须再次执行此操作!如果我是你,我会仔细考虑你的要求到底有多重要,在你走这条路之前。也许可以做一些创造性的思考,看看是否有另一种令人满意的方式来展示信息,即利用现有的功能和选项。可见范围不能在月视图中进行调整,它是一个固定的网格,总是正好显示一个月。我怀疑你的代码本身有什么问题,你只是试图让它做一些它不做的事情。如果指定“timeGrid”或“list”或“timeline”之类的视图,则代码更有可能工作。不幸的是,文档中没有提到这一点。我对你的回答感到非常难过哈哈!难道你不认为我可以用renderDates方法来围绕这个问题,它为这个视图渲染每个单元格吗?例如,通过在DOM中手动附加所有缺少的单元格?我很遗憾,这个VueJS组件的文档太少…它不是VueJS文档-visibleRange方法和文档适用于fullCalendar的所有风格,无论是原生JS、VueJS、,不管怎样,我认为你建议的方法不会起作用-fullCalendar的内部渲染引擎不会知道你在回调期间手动添加的日期/时间段,也不会知道在那里放置事件,即使这些事件与创建的日期匹配。如果您真的想增强“月”视图,那么您必须创建一个-可能是复制月视图代码,然后对其进行更改。但那真的是一项相当大的工作。而fullCalendar 5即将发布,因此您必须再次执行此操作!如果我是你,我会仔细考虑你的要求到底有多重要,在你走这条路之前。也许做一些创造性的思考,看看是否有另一种令人满意的方式来呈现信息,即利用现有的功能和选项。