我一直在尝试使用Angular:ui-calendar和meteor,但是得到了这个错误。
TypeError: calendar.fullCalendar is not a function
at Scope.scope.initCalendar (calendar.js:265)
at Object.fn (calendar.js:337)
at Scope.$digest (angular.js:15896)
at Scope.$apply (angular.js:16160)
at bootstrapApply (angular.js:1679)
at Object.invoke (angular.js:4523)
at doBootstrap (angular.js:1677)
at Object.bootstrap (angular.js:1697)
at HTMLDocument.onReady (app.js:47)
at fire (jquery.js:3143)
在流星包中我有:
角度1.2.3 angularui:ui-calendar
也尝试使用直接插入的包不使用meteor add。但使用calendar.js文件(不同)
两者都得到同样的错误。
试过这个:https://github.com/angular-ui/ui-calendar/issues/267
scope.initCalendar = function () {
if (!calendar) {
calendar = $(elm);
}
calendar.fullCalendar(options);
if (attrs.calendar) {
uiCalendarConfig.calendars[attrs.calendar] = calendar;
}
};
但似乎这个修复不适用于流星和角流星。
有关如何解决此问题的任何想法?
你应该检查initCalendar
中的destroyCalendar
和angular-ui-calendar/src/calendar.js
方法。如果他们使用以下方法创建元素:
angular.element(elm).html('');
然后你应该用以下方法替换它:
$(elm).html('');
问题是angular在窗口中找不到jquery。$
如果您使用的是es6模块:
import jquery from "jquery";
export default (window.$ = window.jQuery = jquery);
否则你应该在index.html和你的应用代码之前添加js脚本:
window.$ = window.jQuery = jquery
我想您可能没有为您的页面正确配置控制器?
我有同样的问题,但使用ui-router,我控制器指定错误,并没有连线。修复此问题会使日历显示,此错误消失。