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

问题描述 投票:2回答:3

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

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

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

jquery angularjs meteor angular-ui angular-meteor
3个回答
1
投票

你应该检查initCalendar中的destroyCalendarangular-ui-calendar/src/calendar.js方法。如果他们使用以下方法创建元素:

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

然后你应该用以下方法替换它:

$(elm).html('');

1
投票

问题是angular在窗口中找不到jquery。$

如果您使用的是es6模块:

import jquery from "jquery";

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

否则你应该在index.html和你的应用代码之前添加js脚本:

window.$ = window.jQuery = jquery

0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.