我在我的angular 5项目中将ng-fullcalender包装器用于fullcalendar小部件。没有fullcalendar-scheduler插件的fullcalendar可以正常工作。但是,当我尝试使用fullcalendar-scheduler插件扩展日历时,小部件的标题中会出现几个“未定义”字符串。
我要在要使用插件的组件中导入fullcalendar-scheduler插件。我在项目的不同位置使用ng-fullcalendar组件。奇怪的是,当我在一个组件中导入fullcalendar-scheduler插件时,所描述的行为将出现在整个项目的每个fullcalenar元素中。我还尝试在“脚本”部分的“ .angular-cli.json”中导入fullcalendar-scheduler插件。但是Chrome控制台会说:“未捕获的TypeError:无法读取未定义的属性'Mixin'” 。它还显示“错误TypeError:spec.class不是构造函数” ,当未加载fullcalendar-scheduler插件时,始终显示该错误。我已经阅读了以下文章:jQuery fullCalendar displayed undefined on title。但是他们的建议都没有解决我的问题,因为ng-fullcalendar组件正在导入fullcalendar,而不是我。他们还建议包括moment包,但是,正如您在我的示例中看到的那样,这也没有任何作用。
我已在stackblitz:https://stackblitz.com/edit/angular-vjydy4中使用上述行为设置了配置。
答案 0 :(得分:1)
我已经解决了问题(两天后):我怀疑加载全日历时出现问题。因此,我根据ng-fullcalendar的源代码创建了自己的包装器。在项目中使用包装器后,我现在可以完全控制单个js文件的加载。而不是导入全日历
import * as $ from 'jquery';
import 'fullcalendar';
仅导入 完整日历计划程序
import * as $ from 'jquery';
import 'fullcalendar-scheduler';
包装中的解决了问题。
您还必须在.angular-cli.json中放入以下内容:
"styles": [
"styles.scss",
"../node_modules/fullcalendar-scheduler/dist/scheduler.min.css"
],
"scripts": [
"../node_modules/jquery/dist/jquery.min.js",
"../node_modules/moment/min/moment.min.js",
"../node_modules/fullcalendar-scheduler/node_modules/fullcalendar/dist/fullcalendar.min.js",
"../node_modules/fullcalendar-scheduler/dist/scheduler.min.js"
],
在您的style.css中,您必须包括fullcalendar的CSS:
@import "~fullcalendar/dist/fullcalendar.min.css";
然后一切都对我有利。