Angular UI-Calendar TypeError:calendar.fullCalendar不是函数

时间:2016-01-29 04:26:08

标签: jquery angularjs meteor angular-ui angular-meteor

我一直在尝试使用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-日历

还尝试使用直接插入的包不使用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;
                }
         };

但似乎这个修复不适用于流星和角流星。

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

3 个答案:

答案 0 :(得分:1)

您应该检查./my_script.sh file.in > file.out 中的initCalendardestroyCalendar方法。如果他们使用以下方法创建元素:

angular-ui-calendar/src/calendar.js

然后您应该将其替换为:

angular.element(elm).html('');

答案 1 :(得分:1)

问题在于,Angular在window中找不到jquery。$

如果使用的是es6模块:

import jquery from "jquery";

export default (window.$ = window.jQuery = jquery);

否则,您应该在index.html中以及应用代码之前添加js脚本:

window.$ = window.jQuery = jquery

答案 2 :(得分:0)

我认为您可能没有为您的页面正确配置控制器?

我遇到了同样的问题,但是使用ui-router,我的控制器指定不正确,而且没有连线。修复此问题会使日历显示,并且此错误消失。