Fullcalendar-scheduler无法设置未定义

时间:2016-12-20 03:20:01

标签: javascript jquery fullcalendar fullcalendar-scheduler

我在这里遇到了很多问题。 我使用ocLazyLoader来加载完整的日历,它运行良好,但是当我试图包含fullCalendar-scheduler时,我在JavaScript中遇到这个错误。

Uncaught TypeError: Cannot set property 'schedulerVersion' of undefined

看起来它无法在插件的源代码中将变量设置为等于$.fullCalendar
以下是我实现文件的方式:

resolve: {
    resources: function($ocLazyLoad) {
        return $ocLazyLoad.load([
            ASSETS.forms.multiSelect
        ])
    },fullCalendarScheduler: function($ocLazyLoad){
        return $ocLazyLoad.load([
            ASSETS.core.moment,
            ASSETS.extra.scheduler,
        ]);
    },
    fullCalendar: function($ocLazyLoad){
        return $ocLazyLoad.load([
            ASSETS.extra.fullCalendar
        ]);
    },
}

我在控制器中传递了正确的值。

controller('AccueilCtrl', ['$scope', '$filter', 'fullCalendar', 'fullCalendarScheduler', function($scope, $filter, fullCalendar, fullCalendarScheduler) {

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:2)

对于那些有这个问题的人,我找到了解决问题的方法。我不知道这是否正确,但它确实有效 Fullcalendar需要特定的订单才能导入所需的文件。使用OcLazyLoad,您可以使用 app.UseMvc(r => { r.MapRoute( name: "default", template: "{controller}/{path?}/{action}/{id?}", defaults: new { controller = "Home", action = "Index" } ); r.MapSpaFallbackRoute( name: "spa-fallback", defaults: new { controller = "Home", action = "Index" } ); }); 参数确定此顺序。例如:

files: []

这样,我就能够以所需的顺序导入所需的文件。您还可以从ASSETS中的js中分离css,然后以正确的顺序导入它。 希望这有助于其他人!

  • 尼克

答案 1 :(得分:2)

通过jQuery的$.getScript(url);方法动态加载calandar文件时遇到同样的问题,我发现了这篇文章。感谢Nick发布您的解决方案!

更改加载顺序后,一切都很顺利。 我的加载顺序是:

1st - 加载所有css

第二次 - 按此顺序加载js:

  • moment.min.js
  • fullcalendar.min.js
  • scheduler.min.js
  • bootstrap.min.js
  • ...

希望这有助于其他人。