我在这里遇到了很多问题。 我使用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) {
有关如何解决此问题的任何想法?
答案 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:
希望这有助于其他人。