javascript - 如何在自身内部使用变量

标签 javascript ecmascript-6 fullcalendar-4

我想在其内部使用变量,并且我看到其他人这样做,但为什么它对我不起作用?

这是我的 ES6 文件

// Setup module
// ------------------------------

var FullCalendarAdmin = function () {

    //
    // Setup module components
    //
    var _componentRender = function () {

    // Basic calendar
    var _componentFullCalendarAdmin = function (events) {

        // Define element
        var calendarAgendaViewElement = document.querySelector('.fullcalendar-agenda-admin');

        // Initialize
        if (calendarAgendaViewElement) {
            var calendarAgendaViewInit = new FullCalendar.Calendar(calendarAgendaViewElement, {
                plugins: ['dayGrid', 'timeGrid', 'interaction'],
                select: function (start, end) {
                    var title = prompt("Add event:");
                    var data;
                    if (title != '') {
                        data = {
                            title: title,
                            start: start,
                            end: end
                        };
                        calendarAgendaViewInit.addEvent(data);
                    }
            }).render();

        }
    };

    //
    // Return objects assigned to module
    //

    return {
        init: function () {
            _componentRender();
        }
    }
}();


// Initialize module
// ------------------------------

document.addEventListener('DOMContentLoaded', function () {
    FullCalendarAdmin.init();
});

如何使用 calendarAgendaViewInit 调用 addEvent 函数而不将函数视为未定义错误?

提前致谢!

最佳答案

问题是您立即调用 .render
因此,您的 calendarAgendaViewInit 不是 FullCalendar.Calendar 的实例,而是 render 方法的结果。
您可以做的是首先定义 calendarAgendaViewInit 变量

var calendarAgendaViewInit = new FullCalendar.Calendar(calendarAgendaViewElement, {
                plugins: ['dayGrid', 'timeGrid', 'interaction'],
                select: function (start, end) {
                    var title = prompt("Add event:");
                    var data;
                    if (title != '') {
                        data = {
                            title: title,
                            start: start,
                            end: end
                        };
                        calendarAgendaViewInit.addEvent(data);
                    }
            });

然后调用calendarAgendaViewInit.render()

关于javascript - 如何在自身内部使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549750/

相关文章:

javascript - 查询选择器全部在 rvest 包中

javascript - 根据 Aurelia 应用程序中的当前路线更改元标记

javascript - 如何在使用 ajax 更改事件对象后刷新 fullcalendar v4

javascript - 如何修复未捕获的类型错误 : Cannot call method 'call' of undefined in fullcalendar

javascript - 如果键匹配则更新对象的现有属性

javascript - 无法将 api json 数据绑定(bind)到 javascript 代码

javascript - 如果用户输入 HTML5 URL,AngularJS 返回 404,如果重定向到同一 View ,则工作正常

javascript - 使用 JavaScript 解析对象名称路径

javascript - 获取数组中的第一个和最后一个元素,ES6方式

javascript - 在 javascript 中拆分问号、感叹号或句号处的字符串并保留这些标记?